feat: Update translation models and enhance order status handling in OrdersTab with new 'picked_up' status and corresponding translations across multiple locales

This commit is contained in:
sebseb7
2026-03-24 07:27:40 +01:00
parent 1840512aac
commit e5a3b7bcce
24 changed files with 477 additions and 446 deletions

View File

@@ -33,22 +33,35 @@ import {
} from "../../utils/wireGirocodeEligibility.js";
// Constants
const getStatusTranslation = (status, t) => {
const getStatusTranslation = (status, deliveryMethod, t) => {
const statusMap = {
new: t ? t('orders.status.new') : "in Bearbeitung",
pending: t ? t('orders.status.pending') : "Neu",
processing: t ? t('orders.status.processing') : "in Bearbeitung",
paid: t ? t('orders.status.paid') : "Bezahlt",
cancelled: t ? t('orders.status.cancelled') : "Storniert",
shipped: t ? t('orders.status.shipped') : "Verschickt",
delivered: t ? t('orders.status.delivered') : "Geliefert",
shipped: deliveryMethod === "Abholung"
? (t ? t('orders.status.picked_up') : "Abgeholt")
: (t ? t('orders.status.shipped') : "Verschickt"),
delivered: deliveryMethod === "Abholung"
? (t ? t('orders.status.picked_up') : "Abgeholt")
: (t ? t('orders.status.delivered') : "Geliefert"),
awaiting_tracking: t ? t('orders.status.awaiting_tracking') : "Wird gepackt",
ready_for_pickup: t ? t('orders.status.ready_for_pickup') : "Abholbereit",
};
return statusMap[status] || status;
};
const statusEmojis = {
const getStatusEmoji = (status, deliveryMethod) => {
if (deliveryMethod === "Abholung" && status === "shipped") {
return "✅";
}
if (deliveryMethod === "Abholung" && status === "delivered") {
return "✅";
}
const statusEmojis = {
new: "⚙️",
pending: "⏳",
processing: "🔄",
@@ -59,6 +72,8 @@ const statusEmojis = {
awaiting_tracking: "📦",
ready_for_pickup: "🏪",
};
return statusEmojis[status] || "❓";
};
const statusColors = {
new: "#ed6c02", // orange
@@ -140,12 +155,8 @@ const OrdersTab = ({ orderIdFromHash, t }) => {
}
}, [orderIdFromHash, orders, handleViewDetails]);
const getStatusDisplay = (status) => {
return getStatusTranslation(status, t);
};
const getStatusEmoji = (status) => {
return statusEmojis[status] || "❓";
const getStatusDisplay = (status, deliveryMethod) => {
return getStatusTranslation(status, deliveryMethod, t);
};
const getStatusColor = (status) => {
@@ -232,7 +243,7 @@ const OrdersTab = ({ orderIdFromHash, t }) => {
</TableHead>
<TableBody>
{orders.map((order) => {
const displayStatus = getStatusDisplay(order.status);
const displayStatus = getStatusDisplay(order.status, order.delivery_method);
const total = order.items.reduce(
(acc, item) => acc + item.price * item.quantity_ordered,
0
@@ -254,7 +265,7 @@ const OrdersTab = ({ orderIdFromHash, t }) => {
}}
>
<span style={{ fontSize: "1.2rem" }}>
{getStatusEmoji(order.status)}
{getStatusEmoji(order.status, order.delivery_method)}
</span>
<Typography
variant="body2"