diff --git a/CHANGELOG.md b/CHANGELOG.md index cb76969..cd4d432 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ ## Unreleased +### Changed + +- Replaced `form_for` with `form_with` in view template ([#128](https://github.com/mikker/passwordless/pull/128)) +- Added frontend validation for email presence in views ([#128](https://github.com/mikker/passwordless/pull/128)) + ### Fixed - Fix `Passwordless#ControllerHelpers` to be used outside controllers (#124) diff --git a/README.md b/README.md index b18c4dd..e1f5509 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,10 @@ Then specify which field on your `User` record is the email field with: ```ruby class User < ApplicationRecord - validates :email, presence: true, uniqueness: { case_sensitive: false } + validates :email, + presence: true, + uniqueness: { case_sensitive: false }, + format: { with: URI::MailTo::EMAIL_REGEXP } passwordless_with :email # <-- here! end diff --git a/app/views/passwordless/sessions/new.html.erb b/app/views/passwordless/sessions/new.html.erb index 55e468c..3fe5fe7 100644 --- a/app/views/passwordless/sessions/new.html.erb +++ b/app/views/passwordless/sessions/new.html.erb @@ -1,5 +1,5 @@ -<%= form_for @session, url: send(Passwordless.mounted_as).sign_in_path do |f| %> +<%= form_with model: @session, url: send(Passwordless.mounted_as).sign_in_path, data: { turbo: 'false' } do |f| %> <% email_field_name = :"passwordless[#{@email_field}]" %> - <%= text_field_tag email_field_name, params.fetch(email_field_name, nil) %> + <%= text_field_tag email_field_name, params.fetch(email_field_name, nil), required: true %> <%= f.submit I18n.t('passwordless.sessions.new.submit') %> <% end %> diff --git a/test/dummy/app/views/registrations/new.html.erb b/test/dummy/app/views/registrations/new.html.erb index dc62362..060c4ff 100644 --- a/test/dummy/app/views/registrations/new.html.erb +++ b/test/dummy/app/views/registrations/new.html.erb @@ -1,4 +1,4 @@ -<%= form_for @user, url: registrations_path do |f| %> +<%= form_with model: @user, url: registrations_path do |f| %> <%= f.label :email %> <%= f.email_field :email %> <%= f.submit %>