mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-02-15 23:57:48 +00:00
Handle user registration responses with turbo_stream
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
2
app/views/spree/users/create.turbo_stream.haml
Normal file
2
app/views/spree/users/create.turbo_stream.haml
Normal file
@@ -0,0 +1,2 @@
|
||||
= turbo_stream.update 'signup-tab' do
|
||||
= render partial: 'layouts/signup_tab', locals: { signup_form_user: @user }
|
||||
2
app/views/spree/users/registered_email.turbo_stream.haml
Normal file
2
app/views/spree/users/registered_email.turbo_stream.haml
Normal file
@@ -0,0 +1,2 @@
|
||||
= turbo_stream.replace 'login-feedback' do
|
||||
= render partial: "layouts/alert", locals: { type: "alert", message: t('devise.failure.already_registered') }
|
||||
@@ -0,0 +1,3 @@
|
||||
= turbo_stream.update 'signup-feedback' do
|
||||
= render partial: 'layouts/alert',
|
||||
locals: { type: "alert", message: InvisibleCaptcha.timestamp_error_message }
|
||||
Reference in New Issue
Block a user