From 8c397c5dcb018716e0055455cad54f4f5e100f7a Mon Sep 17 00:00:00 2001
From: Marco
- {items.length > 0 ? "Schön, dass du da bist." : "Dein Warenkorb ist noch leer."} + {productsLoading + ? "Einen Moment…" + : items.length > 0 + ? "Schön, dass du da bist." + : "Dein Warenkorb ist noch leer."}
- {items.length === 0 ? ( + {productsLoading ? null : items.length === 0 ? (Schau dir unsere Produkte an und finde, was zu dir passt. diff --git a/app/cart/components/FreeShippingBanner.tsx b/app/cart/components/FreeShippingBanner.tsx index 5cbd8c0..2e7d8e3 100644 --- a/app/cart/components/FreeShippingBanner.tsx +++ b/app/cart/components/FreeShippingBanner.tsx @@ -1,8 +1,9 @@ "use client"; import { useEffect, useState } from "react"; +import { AnimatePresence, motion } from "motion/react"; import { FREE_SHIPPING_THRESHOLD } from "../../lib/shipping"; -import { formatPrice } from "../../lib/products"; +import { formatPrice } from "../../lib/format"; const SUCCESS_VISIBLE_MS = 2500; @@ -49,36 +50,45 @@ export function FreeShippingBanner({ subtotal }: { subtotal: number }) { return () => clearTimeout(t); }, [phase]); - if (phase === "hidden") return null; - const remaining = Math.max(0, FREE_SHIPPING_THRESHOLD - subtotal); const progressPct = Math.min(100, (subtotal / FREE_SHIPPING_THRESHOLD) * 100); return ( -
- {phase === "success" - ? "Kostenloser Versand freigeschaltet ✓" - : `Noch ${formatPrice(remaining)} bis zum kostenlosen Versand!`} -
-+ {phase === "success" + ? "Kostenloser Versand freigeschaltet ✓" + : `Noch ${formatPrice(remaining)} bis zum kostenlosen Versand!`} +
+- {product.name} -
-{formatPrice(product.price)}
-+ {product.name} +
+{formatPrice(product.price)}
+12,90 €
+{formatPrice(product.price)}
inkl. MwSt. zzgl. Versand
(
+
+ {product.name}
+
+ {formatPrice(product.price)}
+ inkl. MwSt.
+ {formatPrice(product.price)}
Alle Preise inkl. MwSt., zzgl. Versandkosten.
12,90 €
+{formatPrice(product.price)}
inkl. MwSt. zzgl. Versand
diff --git a/app/versand/components/VersandSections.tsx b/app/versand/components/VersandSections.tsx
index 699e7fe..f54df24 100644
--- a/app/versand/components/VersandSections.tsx
+++ b/app/versand/components/VersandSections.tsx
@@ -6,7 +6,7 @@ import {
TRANSIT_DAYS_DE,
TOTAL_DAYS_DE,
} from "../../lib/shipping";
-import { formatPrice } from "../../lib/products";
+import { formatPrice } from "../../lib/format";
// Single source of truth for both the full /versand page and the cart's
// quick-reference VersandModal — same section ids/titles/copy either way,
diff --git a/public/product-notizbuch-fokus.png b/public/product-notizbuch-fokus.png
deleted file mode 100644
index d882ef17c7fb10a30ec8e5ddfcfad96d77de4798..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 383865
zcmafaWmJ@5v@YE+lr%%b(A^B(T@unIEg(`ucQbS-3@xZgh$1K*k}@zLp-96pf($Wq
z9nV?!$35%Zv+nonTYG)`{qya3_VYeF-PBlzoP>!43k!=}Pgm0%3kw&Fg@rvqMDWkT
z@62 9{&NC
zQ>@XWp9|bQ+w!i4>dEtUw2Ow(3)F^KSKx5!;P_i2F57<4!DlnM&v|)ATH^D$q6G2S
zl$EQ0$f()sJ}X#YsxPr{qiSmfY2UMGH)0%8G#ew$jRh*mic1&Ld5I6VTI-UVgfe
z(#zbvMs$h!T)!7ai^L>xki4Ye(UBCyVKBZrlw0BNS;iOVtfP7T4VMjH$KzSAtAXI0
zRcn{j0mRVhq-r3O^fO=?S-i!EIWJVYICqW#bU0-qL_lmlAQUgvZjbNk>O3Hp3V@CV
zoSY`wI5 6>49MwpxfQE<{yvVG9CzuMExVt2mPt@n#@+8p+wwY&gh`3G
zX7Tg~>z4Y1Gc>NLv+kIH?)1z)@yf0~h4=}8%lJgdJx7npM)CK`s6fYjWbp(Ehv+Us
zBi=68U4RzjR+r1{)_PO=MnS;{d61rDN}4L#2m;*;2VCBlsuK~2mVKZhqP7NJ6sv8c
zzaRLFdcvmQil7+rhVIUf#m6-lD$}fB43K;gXk>PO!}g(U;s&VyeX27x)9f$qm1?dp
z7sbK#q#>US%CPp^W%Bk)G*-K=VW5`<+BrQ0_BO_?cQhJ@I7au$-8;MZ#UBq2iP^@?
zAL|jye%z-Krj_=LmF&9S+qM>rerW^63j^N*gXWc4R?VYS1fJ@5
zz-@h^Q}^@|TjXMX+vivPB4c2q6y?kL9*!gp^T*@_^0fBL9^BH*^sNN?`rzRx5QLDOidE-UbJ~F%rm^OL#@^k90$ArGF
z*A5X0+XrV3dPy3-qWe}M%6=RM;xcwp3j)A3UH|-p7;v^3z=eo{CD4tYTlqGdpVDEU
z^mzs=m4WoLQqJlbiwzUiWf{2@&f9}bbZyXIoc_U=_t($eUY0$hzRp1%R^bawG(-@z
zIywPs$|(Zyt9b|9Lml$-gCzdDfoHr*bkHLLLQP2V3dhia>;FDVn(oKc?NX?HZ!?U$
zpSuLN_k5c?S)ef2X(tSCJmn$&*$qj?g#DSqENWmZAzY4~IF~mQm|%qmpzo4)S`MB`
z4Y>6gUKOs}f^9)VsB?~pT5P$dWI_>w1g{rOxXAG|_54!^!-czyPguoup4qX|noDVz
zcH#;}u)+g{MP|^~Ntil7o%jQgZb?!pu2aZ?)>~tE@siUB^7H|g2fDCh!