diff --git a/src/Forms/Container.php b/src/Forms/Container.php index 103adfeb..ceb81261 100644 --- a/src/Forms/Container.php +++ b/src/Forms/Container.php @@ -354,9 +354,13 @@ public function addTextArea( /** * Adds input for email. */ - public function addEmail(string $name, string|Stringable|null $label = null): Controls\TextInput + public function addEmail( + string $name, + string|Stringable|null $label = null, + int $maxLength = 255, + ): Controls\TextInput { - return $this[$name] = (new Controls\TextInput($label)) + return $this[$name] = (new Controls\TextInput($label, $maxLength)) ->addRule(Form::Email); } diff --git a/tests/Forms/Controls.TextInput.render.phpt b/tests/Forms/Controls.TextInput.render.phpt index 9e9800fb..4e7557c1 100644 --- a/tests/Forms/Controls.TextInput.render.phpt +++ b/tests/Forms/Controls.TextInput.render.phpt @@ -258,3 +258,15 @@ test('addFilter() & rules', function () { Assert::same('', (string) $input->getControl()); }); + + +test('addEmail', function () { + $form = new Form; + $input = $form->addEmail('email', 'Label'); + + Assert::type(Html::class, $input->getLabel()); + Assert::same('', (string) $input->getLabel()); + + Assert::type(Html::class, $input->getControl()); + Assert::same('', (string) $input->getControl()); +}); diff --git a/tests/Forms/expected/Forms.renderer.1.expect b/tests/Forms/expected/Forms.renderer.1.expect index 8b0082a2..4f627614 100644 --- a/tests/Forms/expected/Forms.renderer.1.expect +++ b/tests/Forms/expected/Forms.renderer.1.expect @@ -27,7 +27,7 @@