All checks were successful
deploy / deploy (push) Successful in 1m17s
Magic link flow on contact page: customer enters email, gets a time-limited signed link, clicks through to /orders showing all their paid orders and full detail pages with thumbnails and product links. - OrderLookupController generates/verifies Phoenix.Token signed links - Contact LiveView handles lookup_orders + reset_tracking events - Orders and OrderDetail LiveViews gated by session email - Order detail shows thumbnails, links to products still available - .themed-button gets base padding/font-weight so all usages are consistent - order-summary-card sticky scoped to .cart-grid (was leaking to orders list) - 27 new tests (1095 total) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
31 lines
988 B
Plaintext
31 lines
988 B
Plaintext
<.shop_layout {layout_assigns(assigns)} active_page="contact">
|
||
<main id="main-content" class="page-container contact-main">
|
||
<.hero_section
|
||
variant={:page}
|
||
title="Get in touch"
|
||
description="Sample contact page for the demo store. Add your own message here – something friendly about how customers can reach you."
|
||
/>
|
||
|
||
<div class="contact-grid">
|
||
<.contact_form email="hello@example.com" />
|
||
|
||
<div class="contact-sidebar">
|
||
<.order_tracking_card tracking_state={assigns[:tracking_state] || :idle} />
|
||
|
||
<.info_card
|
||
title="Handy to know"
|
||
items={[
|
||
%{label: "Printing", value: "Example: 2-5 business days"},
|
||
%{label: "Delivery", value: "Example: 3-7 business days after printing"},
|
||
%{label: "Issues", value: "Example: Reprints for any defects"}
|
||
]}
|
||
/>
|
||
|
||
<.newsletter_card />
|
||
|
||
<.social_links_card />
|
||
</div>
|
||
</div>
|
||
</main>
|
||
</.shop_layout>
|