chore: build

This commit is contained in:
2026-06-14 17:50:35 +02:00
parent 3c92a0371f
commit 3a0f725159
93 changed files with 5311 additions and 4224 deletions
+18 -34
View File
@@ -73,29 +73,18 @@ interface ToastMessage {
* Somme des prix individuels (pas de multiplication)
*/
const getTotalAmount = (order: OrderWithTracking): number => {
// 1. Priorité: champ total stocké en DB
if (typeof order.total === "number" && order.total > 0) {
return order.total;
}
// 2. Fallback: total_prix
if (typeof order.total_prix === "number" && order.total_prix > 0) {
return order.total_prix;
}
// 3. Calcul depuis items (comme dans Checkout: somme des prix)
if (typeof order.total === "number" && order.total > 0) {
return order.total;
}
if (order.items && order.items.length > 0) {
const calculatedTotal = order.items.reduce((sum, item) => {
return order.items.reduce((sum, item) => {
const itemPrice = item.prix || item.price || 0;
return sum + itemPrice; // ✅ Somme simple (pas de × quantity)
return sum + itemPrice;
}, 0);
console.log(
`💰 [getTotalAmount] Commande ${order.id}: ${calculatedTotal.toFixed(2)}`,
);
return calculatedTotal;
}
return 0;
};
@@ -336,20 +325,17 @@ function SuiviLivraison() {
}, []); // eslint-disable-line react-hooks/exhaustive-deps
const loadOrders = async () => {
// ✅ Vérifier l'auth avant de charger les commandes
if (!isUserAuthenticated()) {
console.log("❌ [loadOrders] Non authentifié");
navigate("/login/client", { replace: true });
return;
}
try {
setLoading(true);
const response = await getMyOrders();
if (response.success && response.commands) {
if (response.success) {
const ordersWithTracking = await Promise.all(
response.commands.map(async (order: OrderDetail) => {
(response.commands || []).map(async (order: OrderDetail) => {
const normalizedOrder = {
...order,
total: getTotalAmount(order),
@@ -361,18 +347,12 @@ function SuiviLivraison() {
try {
tracking = await getOrderTracking(order.id);
} catch {
console.warn(
`Tracking non disponible pour commande ${order.id}`,
);
tracking = undefined;
}
try {
eta = await getOrderETA(order.id);
} catch {
console.warn(
`ETA non disponible pour commande ${order.id}`,
);
eta = undefined;
}
@@ -386,9 +366,6 @@ function SuiviLivraison() {
setOrders(ordersWithTracking);
setError("");
} else {
setError("Impossible de charger les commandes");
showToast("Impossible de charger les commandes", "error");
}
} catch (err: unknown) {
console.error("Erreur loadOrders:", err);
@@ -945,14 +922,21 @@ function SuiviLivraison() {
/>{" "}
Montant total
</h4>
{(order.referral_used ?? 0) > 0 && (
<p style={{ margin: "0 0 2px", fontSize: "0.85rem", color: "var(--text-muted)" }}>
Brut : {(order.total_prix ?? 0).toFixed(2)} €
</p>
)}
<p className="total-amount">
<strong>
{getTotalAmount(
order,
).toFixed(2)}{" "}
{Math.max(0, getTotalAmount(order) - (order.referral_used ?? 0)).toFixed(2)} €
</strong>
</p>
{(order.referral_used ?? 0) > 0 && (
<p style={{ margin: "4px 0 0", fontSize: "0.82rem", color: "#10b981", fontWeight: 500 }}>
— dont {(order.referral_used!).toFixed(2)} € parrainage déduit
</p>
)}
</div>
<div className="detail-section">