diff --git a/app/controllers/spree/users_controller.rb b/app/controllers/spree/users_controller.rb index 6d22dc86e3..73a3b92ea0 100644 --- a/app/controllers/spree/users_controller.rb +++ b/app/controllers/spree/users_controller.rb @@ -3,7 +3,6 @@ module Spree class UsersController < ::BaseController include I18nHelper - include CablecarResponses layout 'darkswarm' @@ -25,34 +24,14 @@ module Spree @unconfirmed_email = spree_current_user.unconfirmed_email end - # Endpoint for queries to check if a user is already registered - def registered_email - registered = Spree::User.find_by(email: params[:email]).present? - - if registered - render status: :ok, cable_ready: cable_car. - inner_html( - "#login-feedback", - partial("layouts/alert", - locals: { type: "alert", message: t('devise.failure.already_registered') }) - ). - dispatch_event(name: "login:modal:open") - else - head :not_found - end - end - def create @user = Spree::User.new(user_params) if @user.save flash[:success] = t('devise.user_registrations.spree_user.signed_up_but_unconfirmed') - render cable_ready: cable_car.redirect_to(url: main_app.root_path) + redirect_to main_app.root_path else - render status: :unprocessable_entity, cable_ready: cable_car.morph( - "#signup-tab", - partial("layouts/signup_tab", locals: { signup_form_user: @user }) - ) + render :create, status: :unprocessable_entity end end @@ -97,14 +76,7 @@ module Spree end def render_alert_timestamp_error_message - render cable_ready: cable_car.inner_html( - "#signup-feedback", - partial("layouts/alert", - locals: { - type: "alert", - message: InvisibleCaptcha.timestamp_error_message - }) - ) + render :render_alert_timestamp_error_message end end end diff --git a/app/views/layouts/_signup_tab.html.haml b/app/views/layouts/_signup_tab.html.haml index f25bf2024d..929e56c58f 100644 --- a/app/views/layouts/_signup_tab.html.haml +++ b/app/views/layouts/_signup_tab.html.haml @@ -1,14 +1,14 @@ - signup_form_user = Spree::User.new if local_assigns[:signup_form_user].nil? #signup-tab - = form_with model: signup_form_user, url: spree.account_path, scope: :user, data: { remote: "true" } do |form| + = form_with model: signup_form_user, url: spree.account_path, scope: :user, data: { turbo: true } do |form| .row .large-12.columns#signup-feedback .row .large-12.columns = form.label :email, t(:signup_email) - = form.email_field :email, { tabindex: 1, "data-login-modal-target": "email", "data-action": "input->login-modal#emailOnInput" } + = form.email_field :email, { tabindex: 1 } = form.error_message_on :email .row .large-12.columns diff --git a/app/views/spree/users/create.turbo_stream.haml b/app/views/spree/users/create.turbo_stream.haml new file mode 100644 index 0000000000..86fdd86ea6 --- /dev/null +++ b/app/views/spree/users/create.turbo_stream.haml @@ -0,0 +1,2 @@ += turbo_stream.update 'signup-tab' do + = render partial: 'layouts/signup_tab', locals: { signup_form_user: @user } diff --git a/app/views/spree/users/render_alert_timestamp_error_message.turbo_stream.haml b/app/views/spree/users/render_alert_timestamp_error_message.turbo_stream.haml new file mode 100644 index 0000000000..99bb2e4fca --- /dev/null +++ b/app/views/spree/users/render_alert_timestamp_error_message.turbo_stream.haml @@ -0,0 +1,3 @@ += turbo_stream.update 'signup-feedback' do + = render partial: 'layouts/alert', + locals: { type: "alert", message: InvisibleCaptcha.timestamp_error_message } diff --git a/config/routes.rb b/config/routes.rb index 0946d21ab7..44d2549921 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -16,7 +16,6 @@ Openfoodnetwork::Application.routes.draw do get "/register", to: "registration#index", as: :registration get "/register/auth", to: "registration#authenticate", as: :registration_auth - post "/user/registered_email", to: "spree/users#registered_email" resources :locales, only: [:show] # Redirects to global website diff --git a/spec/controllers/spree/users_controller_spec.rb b/spec/controllers/spree/users_controller_spec.rb index 2ff2d2aa42..5c1a9d0749 100644 --- a/spec/controllers/spree/users_controller_spec.rb +++ b/spec/controllers/spree/users_controller_spec.rb @@ -55,22 +55,6 @@ RSpec.describe Spree::UsersController do end end - describe "#registered_email" do - routes { Openfoodnetwork::Application.routes } - - let!(:user) { create(:user) } - - it "returns ok (200) if email corresponds to a registered user" do - post :registered_email, params: { email: user.email } - expect(response).to have_http_status(:ok) - end - - it "returns not_found (404) if email does not correspond to a registered user" do - post :registered_email, params: { email: 'nonregistereduser@example.com' } - expect(response).to have_http_status(:not_found) - end - end - describe '#load_object' do it 'redirects to signup path if user is not found' do allow(controller).to receive_messages(spree_current_user: nil)