add no-JS progressive enhancement for all shop flows
All checks were successful
deploy / deploy (push) Successful in 1m23s
All checks were successful
deploy / deploy (push) Successful in 1m23s
Every key shop flow now works via plain HTML forms when JS is unavailable. LiveView progressively enhances when JS connects. - PDP: form wraps variant/qty/add-to-cart with action="/cart/add" - Cart page: qty +/- and remove use form POST fallbacks - Cart/search header icons are now links with phx-click enhancement - Collection sort form has GET action + noscript submit button - New /search page with form-based search for no-JS users - CartController gains add/remove/update_item POST actions - CartHook gains update_quantity_form and remove_item_form handlers - Fix flaky analytics tests caused by event table pollution Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -755,10 +755,10 @@ defmodule BerrypodWeb.ShopComponents.Layout do
|
||||
/>
|
||||
</svg>
|
||||
</.link>
|
||||
<button
|
||||
type="button"
|
||||
class="header-icon-btn"
|
||||
<a
|
||||
href="/search"
|
||||
phx-click={Phoenix.LiveView.JS.dispatch("open-search", to: "#search-modal")}
|
||||
class="header-icon-btn"
|
||||
aria-label="Search"
|
||||
>
|
||||
<svg
|
||||
@@ -772,11 +772,11 @@ defmodule BerrypodWeb.ShopComponents.Layout do
|
||||
<circle cx="11" cy="11" r="8"></circle>
|
||||
<path d="M21 21l-4.35-4.35"></path>
|
||||
</svg>
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
class="header-icon-btn"
|
||||
</a>
|
||||
<a
|
||||
href="/cart"
|
||||
phx-click={open_cart_drawer_js()}
|
||||
class="header-icon-btn"
|
||||
aria-label="Cart"
|
||||
>
|
||||
<svg
|
||||
@@ -797,7 +797,7 @@ defmodule BerrypodWeb.ShopComponents.Layout do
|
||||
</span>
|
||||
<% end %>
|
||||
<span class="sr-only">Cart ({@cart_count})</span>
|
||||
</button>
|
||||
</a>
|
||||
</div>
|
||||
</header>
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user