From 819f87cdeb5fcdaab4b580f4ffc0863b419e923a Mon Sep 17 00:00:00 2001 From: Marco Date: Mon, 20 Jul 2026 00:18:47 +0000 Subject: [PATCH] fix(bestellbestaetigung): rebuild testimonial band, tighten hero, add spotlightEyebrow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Testimonial band: rebuilt as a proper flexbox two-column layout (photo column with an explicit width, quote in a flex-1 sibling) instead of an absolutely-positioned text block offset with percentage margin/padding — that measured against the row's full width and, combined with a max-w- on the text box, left almost no room for the actual text on wide viewports (wrapped to one word per line). Also dropped the muted-bg box behind the quote and widened the photo fade to match the actual mockup, which has no separate colored panel there at all. Hero: removed the separate big checkmark badge — the 4-step bar right above it already renders every step as a checkmark, so it was just repeating that. Added more top spacing to compensate. Dropped "Deine Bestellung macht sich jetzt auf den Weg zu dir." and added "inkl. MwSt." under Gesamtbetrag for consistency with /cart and /checkout. Wired the new Products.spotlightEyebrow field (CMS-editable "Neu im Shop" label) through lib/payload.ts into ProductSpotlight.tsx. --- .../components/BestellbestaetigungContent.tsx | 107 ++++++++++++------ app/components/ProductSpotlight.tsx | 2 +- app/lib/payload.ts | 3 + .../bestellbestaetigung-testimonial-photo.jpg | Bin 12965 -> 18541 bytes 4 files changed, 76 insertions(+), 36 deletions(-) diff --git a/app/bestellbestaetigung/components/BestellbestaetigungContent.tsx b/app/bestellbestaetigung/components/BestellbestaetigungContent.tsx index a3e35d5..4fdb67d 100644 --- a/app/bestellbestaetigung/components/BestellbestaetigungContent.tsx +++ b/app/bestellbestaetigung/components/BestellbestaetigungContent.tsx @@ -10,6 +10,32 @@ import { Reveal } from "../../components/Reveal"; import { CheckoutSteps } from "../../components/CheckoutSteps"; import { ORDER_KEY, type OrderSnapshot } from "../../lib/order"; +// Rejects (rather than silently patching with fallback values) anything +// that doesn't match the current OrderSnapshot shape — e.g. a snapshot +// left over from before shippingCost/paymentMethodTitle were added to it. +// Fabricating "Kostenlos"/"—" for missing fields would render a receipt +// that looks real but states things about an order that were never true; +// treating it as no-order-found and clearing it is the honest fallback. +function parseOrderSnapshot(raw: string): OrderSnapshot | null { + try { + const data = JSON.parse(raw); + if ( + !data || + !Array.isArray(data.items) || + data.items.length === 0 || + typeof data.orderNumber !== "string" || + typeof data.orderDateIso !== "string" || + typeof data.shippingCost !== "number" || + typeof data.paymentMethodTitle !== "string" + ) { + return null; + } + return data as OrderSnapshot; + } catch { + return null; + } +} + export function BestellbestaetigungContent() { const products = useProducts(); const [order, setOrder] = useState(null); @@ -25,8 +51,15 @@ export function BestellbestaetigungContent() { useEffect(() => { try { const raw = window.sessionStorage.getItem(ORDER_KEY); - // eslint-disable-next-line react-hooks/set-state-in-effect -- reading a browser-only store on mount to avoid an SSR/hydration mismatch, see comment above - if (raw) setOrder(JSON.parse(raw)); + const parsed = raw ? parseOrderSnapshot(raw) : null; + if (parsed) { + // eslint-disable-next-line react-hooks/set-state-in-effect -- reading a browser-only store on mount to avoid an SSR/hydration mismatch, see comment above + setOrder(parsed); + } else if (raw) { + // Present but invalid/outdated — drop it so it doesn't keep + // failing validation on every future visit either. + window.sessionStorage.removeItem(ORDER_KEY); + } } catch { // ignore — falls through to the "no order" state below } @@ -74,17 +107,13 @@ export function BestellbestaetigungContent() { - {/* Hero — success badge, headline, short recap */} - -
-
-
- -
-
- + {/* Hero — headline, short recap. No separate big checkmark badge — + all four steps in the bar right above already render as + checkmarks (current={5}), a second one here would just repeat + it; pt-24 (up from the badge-era pt-12) keeps real breathing + room between the bar and the headline now that the badge isn't + filling that space itself. */} +

-

Deine Bestellung macht sich jetzt auf den Weg zu dir.

Du erhältst in Kürze eine Bestellbestätigung per E-Mail mit allen Details.

@@ -176,15 +204,18 @@ export function BestellbestaetigungContent() {
-
- - Gesamtbetrag - - - {formatPrice(total)} +
+
+ + Gesamtbetrag + + + {formatPrice(total)} +
+

inkl. MwSt.

@@ -210,24 +241,30 @@ export function BestellbestaetigungContent() {
)} - {/* Testimonial band — same photo+quote pattern as /not-found (see - that page's own comment); bestellbestaetigung-testimonial-photo.jpg - is cropped from the actual mockup pixels the same way. Explicit - md:h- (not just min-h-), so the image and quote columns are - pinned to an identical height regardless of how many lines the - quote wraps to — a min-height alone lets the taller of the two - content-driven columns stretch the row past what the other side - visually fills up to. */} - -
+ {/* Testimonial band — different from /not-found's version: this + page's own mockup has no separate muted-bg box on the text + side at all, just a wide photo column that fades into the + plain page background at its own trailing edge, with the + quote sitting in a normal flex-1 column beside it (not + absolute-positioned with %-based offsets — that measures + against the row's full width and, combined with a max-w- on a + narrow text box, can leave almost nothing for the text itself; + flexbox distributes the two columns' widths correctly on its + own regardless of viewport size). items-stretch on a row with + a FIXED h- (not min-h-) keeps both columns pinned to an + identical height regardless of how many lines the quote wraps + to — a min-height alone lets whichever column has more content + stretch the row past what the other side visually fills. */} + +
-
+
-
+

-

Neu im Shop

+

{product.spotlightEyebrow || "Neu im Shop"}

{ } export type SpotlightProduct = Product & { + spotlightEyebrow: string | null; spotlightHeadline: string | null; spotlightText: string | null; spotlightImage: string | null; }; type PayloadSpotlightProduct = PayloadProduct & { + spotlightEyebrow: string | null; spotlightHeadline: string | null; spotlightText: string | null; spotlightImage: { url: string } | number | null; @@ -211,6 +213,7 @@ export async function getSpotlightProduct(): Promise { compareAtPrice: doc.compareAtPrice ?? null, image: typeof doc.image === "object" && doc.image ? doc.image.url : "", href: doc.detailHref || null, + spotlightEyebrow: doc.spotlightEyebrow || null, spotlightHeadline: doc.spotlightHeadline || null, spotlightText: doc.spotlightText || null, spotlightImage: diff --git a/public/bestellbestaetigung-testimonial-photo.jpg b/public/bestellbestaetigung-testimonial-photo.jpg index 9343e4e35b9faa2102f45d7677f55cf09ba7ca13..509e9037a22fdc1ec69c5ad7d94bf834d6b3aac2 100644 GIT binary patch literal 18541 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 literal 12965 zcmb7pWl$VU(B|T>xV!5vlHl&Ti!biMURc~6g1c*QcNTX-5?m4p?ydOV!pL_6qAHc4%RZu%;GUX$}evfo}Qs#9kKh1 zjGRrtvrI@w*T$=L@E;o$5&^8e=g-)sO>H1vNM7a;%{`Jb2n6dC3J7=wgNh(g53 zi%KkO$;YG}hDK7lOX|*&*7A1^fb);#A4&+220S?=d}O7q8e#tnFr!CUKN-^#zFrFj ziQk5F{6Yrq!Rz_w;t6c~&V*C>q)!9B(PHX2Bn2;k14w({amJ8-WK+A12yZ_=6D&yn z6_Jse>ZWq|sYB7k1V!gp@Lz!X8r9+;n-b@!pZt&S$L7L@aPe9?@f!B zKK5mL-DJ=Nd@Nr2guZ&7G@Zi6w~mC={&DT9bs>vD@1{=w_F&aFSAD{(c37l>jy81Q zrx}i;P^v+>HE&~EzvsGRU5AG8$h)~Ux+AC$%Pg2uLW$7!Or{x^a_~H(*Sg^U~sYMY5p?-FJrVNT_9%TrV`UEE2 zVx@$(_Y#8li9d@)u($2jl*gU4JBQ{kU{v$eNLVHAm{0iW$E)K_H5GFjlIkatH7l|# zTh2*!`fbJDQt#sO$W11Ms9Mc|-^0HU0DF{Z4wdMy{)OQ9z2=`a>Tf-RavO3U$}keN zw-+S(o%h(N;k-*Rmy7MoNFH#ukObUm5HIm?1Jp7}2T zO{fwF4dRy)OBzI9`|)PB?6dUD%vkMW;V`W${Sx!bU(6vCwo~F&`ODx(b0-gX`Xkcmv;qzWJYAT$gZW#IhgYPXCe{mDr`Ox}AN1?I zv80`)k4V)zmoYa5yUXLrg+G4^Tf0{SM)Rhn7+*u(!<9$NXxK^X zqR}12KZUK|s}0U!tWn-ITvY_`Ue##g6ClX8?0thN*X}id8Q)`r9BJSf=lDr7nG-a% z{HgZ7{TLl*%^n#G{{VAuyf}t(6ajPo!(e!}3Cftcy#HGN$gzBO8Tvw6))zdVstfEA z&ZSO_(Fn?+v49md41}HA6b_e$*pjTu=>ER!!Y>2k|DNR9mSWr_TUB(6houCYsNNGi zE=a-$>sLxQZ|SyMtw#%9OH+)mV4jI7N%AkJ7=?D8vxT2+#^RW39+&*)A7e&KMYr09 zIedfvnfAC2KTE3j>IuluYtN<9ADPOmiQHg$9semsIYvnn%8W30sy8;h+bYlU>JcNm z8AdH_8C+LE!E(l;W(5HN=wE<8-dBFN7h3f-G-lT9%y#Nb3ttyU>)8v^EH2d6HxsE4 z%h6qf$^5u{~+~=ZxR+ zX{wQA>uT+~FEJ`|R2qj0*8sgR{Yn>8ASv)bgE16ZDQzhpkcS3R*e22BL7nxpXJwR#NqU>NrsrcsP4|<<4xvL0 z5l94XEaeJ?+|e&J3*V?KfAIW_AyIRf@zA3r)+JvH8o_bds&VO_8zqVQ=aN;;n7g4I zJ~jdJ#9$Vy2pt3>{Y}5k2=+#CBM_hEjZ{!lfc(2gPKF(UWWm1xqOO;4`wUO6G8|Yc6;pq>co?M+CU}+E;EQ)}$9YrfZ%P z|L}h~trzE>Kf@U^=&(^$vnQ(BVc3Tex?z<# z7)IGD;;yIa;TksR^i54eCk)D8v4Ce{M52MJg}E!PU6pF0;c$YL>gi~sXaEc%#Umv} zQbf#~12AC9g+zV_Hu3VOI28nL9E-fJupKWlvSP68%D5Ln2`4u3(0i@H_|}&6lb_~ZM#7o+?gY)B7TEd2kU-x)9IO6kT{oC zn})#y;jaww`>Gw;U80;socKT_Od^`gdL9m5EoEAvSriv|bg+wS^1p zQC{>el_aLZb)&3Ws|L0amf>K)9Fo)$W+fd^g+a&Vwqj?lxzqz$Ls2^Vm!>gQj$f_* zg3`Xj@Hd+%JXSbqMeHtI(%yuKEDLEaPUxpromoa5@>l24oG!2o)L4UGxiD$#w)C2N zWg3lHkywsfP5aa&S4v=2oh%Fiy^#?R+212gRpNy(EcvxumZ5mK8y{0Pxa;>cy!|dV zh8xgkX!)z>`DQtA{ehD6(ney}UD4zqk7tsHToE}&JiE6(OTI*e%3NjQS1pa>`gtV? zkm>_f)|mlb%}t1Wwa!c!YQ|>PM?j}*3dWYsvwOJPE5#>NwFj6VW$CWLj<+ofzj*MP zPFw(?WffubxntAu+XCxm#jjKgV-)=QUmg4*5?iprY|jG~`rXEN=k$hsft?Co4K=+h zdlM%@f?F{!K|J``4W=mp3bZ|SI<3IuX-1RFyTPqbRtI;*6~!6)#+a7U@qXTstk6c%Rtmna-fOZ;zKhU3Nk`(pQwv{q zUq*w7W}Q89F$Tdk7t%MdnT6&Qp4LLAN8S$~;qjKTlt^yEt zKkB068=G?%x~f6l&nm9yWnp9pO4|-r@l>I5UPNu;z&a1-xxc?2W3g@>YxABz>ksr; zlX_~9S6~)~L~WOQ zT}3Xqcby_M2Rg-w{pDBq3hG}C?Q7hAX%ErE6w3+_Ep_H6PTrgQvYn76vDi#Z4U^D2 zYx_cLF_e14mhAK1j_5+g?QBhFv`M>zuy3t=+r<@mIUuTmj>iNyS_1U0;A~|m>adq{ zv`p*~wjkM2A7|JkrAm7uJD`cQJ|<}UxooXtOtm&JF3WD!Vhw}xAwJR^vBykQY-@Z~EXja~kL()5qEoj->zAKDtQRoiT@+ zrSVia!z-Knb`!J?>{`$E}OJzD;Zyz#}bP+|Y+)7I3IM6`lJjXAg8r4iO zYn|o>WcvhirQ&CHLG)q=4@y??__b9@_vIcIEh8$g!K*3+@nJVfG0hBh0nr~f&Z4( zUjH0ZpSsqX4nl_Dk2Ze+@gF}!qIyn>BT}rB7dy)4SH8ub_{K_uu#`08CSE@2edF8a z+ZWpMk!9c4`LpDjkXGHG-_DV$nqEM81Jb-HrA_iN2{=zNQEFbx=Wc&{uv({K5~}Yr9BF<4)jdgViQ=nx$n-ja?px(e|$=WCK9KQBbg z)115}e}jc+`~^U0vC5deo8227_};F9ogQgVJ}x#7uMn7mh7cb+7bLf@>xK3umysv$ zQQ!TJPgIE?x)9!GKtL?~Qt^m13!%`xIeKZ$%}o!0SPCCj2fRo;LT&vm|m9XH~ zV_u#L3{y*shQ+JoI!|K<>9RZ-Ojw~WvX7<>5E+E}J0CcrbLjX1K;V^#rFb&A1puRn zc(~}F%yR8ec2}F1+B0V%`TvYJJH*Jtt4M;g9{uUXY_5lv1@0!%3^h$w{VPkq=ttp@ z92WxTjcK}SXtUVyhT+UT5b>JdDQ^lLp}=+JH*b`=9hLDPS;PXwv!8hZB#5h?)1kir zF=j_wxG#e zFM_xRhK$1q@RNTFS~)1xu3)Bz75#8)q9xwHdO5+Z&BZs)2e?%81rL@SSLsi`F(9Xz z9x&F>JWFtVu4d|!{}EB5$7eGI=S}~24as(8;kUQFdPa=nFiWwTlYaXPP!1V$kwlz! zcaBb$8ApVw6(*$?*e>D~TlmCtIDii$W@Qy7hCEpE7miYBurd3U@d9Mn%$J8 zK@Nw`PuQoY*v)0_+xs1;StIW?YH=AaWJZrr*>}kJS`Naw4k?=zJIqz zlAe&v5~XYVnbo=rhiJG`*+Q~rShbpt&t1MS79y@s?bI1mOKe{cDU-=PxYiSKvDDrw z|KV1RA)pT&{4xdOYvlo$8*y7ut^wIAqc?iEcxRd$IHJ7VZ z%5|>|h!}VV4~A3$z$+D!7QV0bD&bi&fe?vv9*e%6$C9 zu}fU|tXkt9Vol~OPTXy)!2KJqi2b06V&C0NGn4|Qq|tr;FF>XKKrZ{-gZ07MX3U+@ zIc$f>2W1XH%YPfyJ-H+7{8r8H*g89c+ zH8txmw3>(lib6=gCv0q|>)B&!=@;>d*#*#DNjLy@{AYzXIiO+UNCh(!oUnX$MvTEa z1*f^Nal>8F4V?;r&-78gP$Mf&SW$O%?4U1oa(AVr+*L`qzS4<-F(*7)$#0GiUtWFZ z7o!T`fLO`07U$PxdL;px`k5Xl>C*>KR?va4Kp$CU&(L5}?8Fptd}J+ZO;|Br2YctJ z+#~@EIKKL?Xm!?V;U*cQne`R7J9M9u0;Dy5E0FMBxktEPtLF6miI{sU?bEbeftJC& zJsoon;R=ptJ$N3YM++>2XJ@H%Dv!kRT8eED1I;X{p5W@X%5v3@<}>kQ{Dn+6*uH$j&CNDv?wf83D6dC3L9G){T7jY zeLh8X4akMwD7TY3DR(vcV^u2^+#kfCrQ6-#Uk=46Kq-`}XD^E?Kw|6Au{RFFWin;A zHrgIdt)$9!R~=!k^w*C=t;r{nW#1z7eLFkEstm}bFXHU_cTzax=uLo zl3|`~-vR8CrnWaYIiktf3GC(WK-N+-a76GxTFt^!E;Q)P)S(sfFi{-^qAUUjrBjIE zvAm4}N%!pMY#?7C^Q^iMM|CUZl!pY}%)s(VIS0OPkJ8%TV{HTIC$8q~?oxZ!~^vTxv$Bt?2DHbx34SoWN||DABZ*V&{SkK}f?Gra0ls+YG|Cw_WgRVlq& z{>w|f(T(=tx{1-WUo1HW4TZi9n@)v*nl6Imh~3(!=S}!x4^;HIBK~KB#eY6Rm_`Nx z?>{=ol53dk)u89gDW_H$TBHTGD2pafmaUg%Fl%n2KqxOMEeL9o)>bW5Oy1u+|Atf2 ze-;gu{9<=(R&dx;U7p=H(vCSs>@YxzvJjk>kfD+N#zQXa6P+B1l*km;?X}6Uy9LSfwY zyHAyspPQJaog3c+6Fyhj7=6EVFR-RHl|?x=_S$<;I+`=#&$zR&$@>lws5EaMnPz@R z^NG23ROJd=N#~|+&tnh?Nmjwh&9Qg7@4qi)6x|=!#x@i8+O9=v$nE)<9P_=ZkAM7F zw)*N|v5XD3QUMUToxFvNCEIhgXuA1SJc`nWm;JJ!+yx}l6Yu{8mjC z93#e)J9u~*ok4+|p^4Q}e&X}viKWhosV(0fR-F9=A53_kuw!kSyfZJ5m2RyT)+$iT zZMa26wZ2Oqt1~e&)LJUD7roRJA{6h!I|wR@;5Fmz5LQI{F$S1nA56hkMOKyW*7&c= zM!jG~fXB^ahjma2>+^K(Bq~qEFBS`XHw4SfeMfxu>sWN+Aq7~tR;av~UZR9KK5(ps z+CRkL2H<ng1;+d5fw188v8&N-9+nfBGWejz41PXbXRK?SieMMl`s4iU}%^Y_=~ z-CMo2%=u0?PV6!6>g?-z-WZ^*xJn>1KtH6an#l84mBUCcXMRU5Zmj|iq1?V@$3As@ zOQSx~lLm%Zl4ONVsV!tf*A~Mzb2gSg;vKRqi8{9B)h7<-Y=6Sv70daTdBdZ}(fisD@x7lyxh>{C}nr^HRTKM7N! z*T*JLhwj`%XAfb0W{(`G-9XJkbN>EZN?F8=+L{UWp2~UQ~9U0Cap~eEi5I=xHa}C!}LSb%7 zys9Pcz^};+={{3Vp(H|UWrj1I{KjPCr>fjQEbk0HNpC6Z05(g zijz&Hj9;26dAbM5{=44|AsyFcS8J>n9^FO#8#Xr2X187BX_tD+tPXKD#CKiO0S|Tm zKF!|mD*vXveN(8sjD-(kUxDdM_m(&+s2a+SGcOp7b>5AfY%;1Qd1nt`Sj8+z7i!+R z&Y2h(najIuRrGE@Y_Q+d@wEO{D2CkIEy#*O8T7wqLwy^y&rW|*`*gFmal~Ot2Qn;P zRzJ(f1j`|hJ1b8%;g#_-OAy6zx)0at^}!PCJUfJSeX%94G5jW;e~6+i52hM_*U|4~ z*QfhW#SQo80FqpJ0|X{E%f_D6RSjd?<7ARjTHuj`dUlXM4Vsc{$%EXSrz2!FdXR4f zn@^!46V66I4R=vtB!Umi-St2S!mq{9vPUnV{n%*a9n|0L(bGg}|6LJj=JUy3p#1tK zwO~A{`^?e`0yL&iDMJZ{HDi2guS_a;5G7s-AN}~v=Io^9RFiUX-pI`+BR;_qZ{7

?6 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 ldMct}UEmehJaz9@QK~P=<