mirror of
https://github.com/we-promise/sure.git
synced 2026-06-08 20:29:05 +00:00
* fix(ds): cross-viewport lock — consistent auth mode-switch (#2137) The auth sign-in/sign-up mode switch rendered as a segmented pill toggle on mobile (md:hidden) but a plain text link on desktop (hidden md:block) — the audit's cross-viewport inconsistency. Lock to the segmented switch at all widths and drop the now-redundant desktop text links. Verified on /sessions/new at desktop width: the Sign in / Create account segmented toggle now shows (was a text link). Note: the switch still uses the bespoke bg-surface-inset track; migrating it to DS::SegmentedControl (#2145) would also fix its dark-mode contrast — a follow-up once that lands. The account-new icon glyph-vs-chip case the audit grouped here did not reproduce (account_type + method_selector already use consistent DS::FilledIcon / chip icons). * fix(auth): keep the sign-in/up switch after a failed submit A failed sign-in/up POST re-renders :new from the #create action, so the switch (gated on action_name == "new") disappeared and the active tab was derived from current_page?, which breaks on the POST URL. Render the switch on both new and create, and derive the active tab from controller_name. Addresses Codex review on #2149.
41 lines
1.8 KiB
Plaintext
41 lines
1.8 KiB
Plaintext
<%= render "layouts/shared/htmldoc" do %>
|
|
<div class="flex flex-col h-full overflow-y-auto">
|
|
<div class="flex flex-col min-h-full px-6 py-12 bg-surface">
|
|
<div class="grow flex flex-col justify-center">
|
|
<div class="sm:mx-auto sm:w-full sm:max-w-md">
|
|
<div class="flex justify-center mt-2 md:mb-6">
|
|
<%= image_tag "logomark.svg", class: "w-16 mb-6" %>
|
|
</div>
|
|
<div class="space-y-2">
|
|
<% if controller_name.in?(%w[sessions registrations]) && action_name.in?(%w[new create]) %>
|
|
<%# Determine the active tab from the controller, not current_page?:
|
|
a failed POST re-renders :new from #create, where the request
|
|
path is the form target (not /sessions/new), so current_page?
|
|
would mis-highlight the switch. %>
|
|
<% on_sign_in = controller_name == "sessions" %>
|
|
<div class="space-y-3 w-full my-4">
|
|
<div class="bg-surface-inset rounded-lg p-1 flex">
|
|
<%= link_to new_session_path,
|
|
class: "w-1/2 px-2 py-1 rounded-md text-sm text-center font-medium #{on_sign_in ? 'bg-surface shadow-sm text-primary' : 'text-secondary'}" do %>
|
|
<%= t("layouts.auth.sign_in") %>
|
|
<% end %>
|
|
<%= link_to new_registration_path,
|
|
class: "w-1/2 px-2 py-1 rounded-md text-sm text-center font-medium #{!on_sign_in ? 'bg-surface shadow-sm text-primary' : 'text-secondary'}" do %>
|
|
<%= t("layouts.auth.sign_up") %>
|
|
<% end %>
|
|
</div>
|
|
</div>
|
|
<% end %>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="mt-0 md:mt-8 sm:mx-auto sm:w-full sm:max-w-lg">
|
|
<%= yield %>
|
|
</div>
|
|
</div>
|
|
|
|
<%= render "layouts/shared/footer" %>
|
|
</div>
|
|
</div>
|
|
<% end %>
|