feat(ui): Polish-Durchgang Admin und Mobil, Erstattung nur mit Rueckfrage

Sicherheit: "Jetzt per Stripe erstatten" loeste die Rueckerstattung bisher
mit einem einzigen Klick aus. Erstatten und Ablehnen einer Retoure laufen
jetzt ueber ConfirmForm; die Rueckfrage nennt Bestellnummer und Betrag.

Admin: Produkte, Bestellungen und Retouren nutzen dieselben Bausteine wie
die uebrigen Listen (Seitenkopf, Suche mit Zusatzfiltern und Archiv-
Parameter, Status-Badges, Leerzustaende). Produkttabelle ohne seitliches
Scrollen bei 1440 px: Bearbeiten ueber den Produktnamen, Charge ohne
Umbruch. Geschenk-Markierung als SVG statt Emoji. Letzte rohe Knoepfe
(Bestelldetail, ApiCore, Inhalte) auf Button umgestellt.

Mobil (390 px): Ueberlauf auf /konto (Datenexport) und /kontakt
(E-Mail-Adresse) behoben. Tippziele unter 24 px vergroessert
(Zurueck-Link, "Zum Honig", Links auf der Produktseite). Wunschliste mit
SVG-Stern statt Unicode-Zeichen.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
This commit is contained in:
Nick SzaunigandClaude Opus 5.5 committed 2026-09-25 21:24:55 +02:00
1 parent b7a75dddca
commit 11eccec01b
16 files changed
+221 -155

No files matched your search

+4 -2
View File
@@ -1120,6 +1120,8 @@ export const de: Dictionary = {
create: "Anlegen",
},
adminReturnsPage: {
refundConfirm: (orderNumber, amount) => `Bestellung ${orderNumber} jetzt mit ${amount} per Stripe erstatten? Das lässt sich nicht rückgängig machen.`,
rejectConfirm: (orderNumber) => `Retoure zu Bestellung ${orderNumber} wirklich ablehnen?`,
backToDashboard: "Zurück zum Dashboard",
title: "Retouren",
searchLabel: "Suche",
@@ -1588,8 +1590,8 @@ export const de: Dictionary = {
notifyMeLabel: "Benachrichtige mich, wenn es wieder verfügbar ist",
emailPlaceholder: "E-Mail-Adresse",
notifySubmit: "Anmelden",
removeFromWishlist: "★ Von der Wunschliste entfernen",
addToWishlist: "☆ Zur Wunschliste hinzufügen",
removeFromWishlist: "Von der Wunschliste entfernen",
addToWishlist: "Zur Wunschliste hinzufügen",
loginToSave: "um dieses Produkt zu merken.",
loginLinkLabel: "Melde dich an",
checklist: {
+4 -2
View File
@@ -1106,6 +1106,8 @@ export const en: Dictionary = {
create: "Create",
},
adminReturnsPage: {
refundConfirm: (orderNumber, amount) => `Refund ${amount} for order ${orderNumber} via Stripe now? This cannot be undone.`,
rejectConfirm: (orderNumber) => `Really reject the return for order ${orderNumber}?`,
backToDashboard: "Back to dashboard",
title: "Returns",
searchLabel: "Search",
@@ -1574,8 +1576,8 @@ export const en: Dictionary = {
notifyMeLabel: "Notify me when it's back in stock",
emailPlaceholder: "Email address",
notifySubmit: "Sign up",
removeFromWishlist: "★ Remove from wishlist",
addToWishlist: "☆ Add to wishlist",
removeFromWishlist: "Remove from wishlist",
addToWishlist: "Add to wishlist",
loginToSave: "to save this product.",
loginLinkLabel: "Sign in",
checklist: {
+2
View File
@@ -787,6 +787,8 @@ export interface Dictionary {
create: string;
};
adminReturnsPage: {
refundConfirm: (orderNumber: string, amount: string) => string;
rejectConfirm: (orderNumber: string) => string;
backToDashboard: string;
title: string;
searchLabel: string;