diff --git a/app/controllers/spree/users_controller.rb b/app/controllers/spree/users_controller.rb index 0aae64116d..2119cbd9f3 100644 --- a/app/controllers/spree/users_controller.rb +++ b/app/controllers/spree/users_controller.rb @@ -4,7 +4,6 @@ module Spree class UsersController < ::BaseController include Spree::Core::ControllerHelpers include I18nHelper - include CablecarResponses layout 'darkswarm' @@ -31,13 +30,10 @@ module Spree 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") + respond_to do |format| + format.html { head :ok } + format.turbo_stream { :registered_email } + end else head :not_found end @@ -48,12 +44,12 @@ module Spree 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 }) - ) + respond_to do |format| + format.html { head :unprocessable_entity } + format.turbo_stream { render :create, status: :unprocessable_entity } + end end end @@ -98,14 +94,10 @@ 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 - }) - ) + respond_to do |format| + format.html { head :ok } + format.turbo_stream { render :render_alert_timestamp_error_message } + end end end end diff --git a/app/views/layouts/_signup_tab.html.haml b/app/views/layouts/_signup_tab.html.haml index f25bf2024d..b126a24187 100644 --- a/app/views/layouts/_signup_tab.html.haml +++ b/app/views/layouts/_signup_tab.html.haml @@ -1,7 +1,7 @@ - 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 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/registered_email.turbo_stream.haml b/app/views/spree/users/registered_email.turbo_stream.haml new file mode 100644 index 0000000000..e6ef58711c --- /dev/null +++ b/app/views/spree/users/registered_email.turbo_stream.haml @@ -0,0 +1,2 @@ += turbo_stream.replace 'login-feedback' do + = render partial: "layouts/alert", locals: { type: "alert", message: t('devise.failure.already_registered') } 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 }