diff --git a/client/src/pages/mobile/DeliveriesPage.tsx b/client/src/pages/mobile/DeliveriesPage.tsx index 7939091..b4ed8fe 100644 --- a/client/src/pages/mobile/DeliveriesPage.tsx +++ b/client/src/pages/mobile/DeliveriesPage.tsx @@ -75,7 +75,10 @@ export default function MobileDeliveriesPage() { }); const getDateBadge = (dateStr: string) => { + if (!dateStr) return null; const date = new Date(dateStr); + if (isNaN(date.getTime())) return null; + if (isToday(date)) { return Aujourd'hui; } @@ -179,7 +182,10 @@ export default function MobileDeliveriesPage() {

- {format(new Date(delivery.expectedDate), 'dd/MM/yyyy', { locale: fr })} + {delivery.expectedDate && !isNaN(new Date(delivery.expectedDate).getTime()) + ? format(new Date(delivery.expectedDate), 'dd/MM/yyyy', { locale: fr }) + : 'Date inconnue' + }

diff --git a/client/src/pages/mobile/OrdersPage.tsx b/client/src/pages/mobile/OrdersPage.tsx index 8dd130d..2cb4b9f 100644 --- a/client/src/pages/mobile/OrdersPage.tsx +++ b/client/src/pages/mobile/OrdersPage.tsx @@ -164,7 +164,10 @@ export default function MobileOrdersPage() {

- {format(new Date(order.orderDate), 'dd/MM/yyyy', { locale: fr })} + {order.orderDate && !isNaN(new Date(order.orderDate).getTime()) + ? format(new Date(order.orderDate), 'dd/MM/yyyy', { locale: fr }) + : 'Date inconnue' + }

diff --git a/client/src/pages/mobile/TasksPage.tsx b/client/src/pages/mobile/TasksPage.tsx index 708e0c5..201c4cd 100644 --- a/client/src/pages/mobile/TasksPage.tsx +++ b/client/src/pages/mobile/TasksPage.tsx @@ -361,132 +361,127 @@ export default function MobileTasksPage() { // Loading if (isLoading) { return ( -
-
-
+ +
+
+
+ ); } return ( -
- {/* Header */} -
-
-
-
- -

Tâches

+ +
+
+
+
+
+ +

Tâches

+
+ {filteredTasks.length}
- {filteredTasks.length} -
- {/* Search */} -
- - setSearchTerm(e.target.value)} - className="pl-10 h-10 text-sm" - /> -
+ {/* Search */} +
+ + setSearchTerm(e.target.value)} + className="pl-10 h-10 text-sm" + /> +
- {/* Tabs - Grid layout pour garantir 3 colonnes égales */} -
- - - + {/* Tabs - Grid layout pour garantir 3 colonnes égales */} +
+ + + +
-
- {/* Task List */} -
- {filteredTasks.length === 0 ? ( -
- -

Aucune tâche trouvée

+ {/* Task List */} +
+ {filteredTasks.length === 0 ? ( +
+ +

Aucune tâche trouvée

+
+ ) : ( + filteredTasks.map((task: TaskWithRelations) => ( + handleComplete(task.id)} + onEdit={() => { setEditingTask(task); setShowForm(true); }} + onDelete={() => setDeletingTask(task)} + canEdit={canEdit} + /> + )) + )} +
+ + {/* FAB Button */} + {canEdit && ( + + )} + + {/* Form Modal */} + {showForm && ( + { setShowForm(false); setEditingTask(null); }} + selectedStoreId={selectedStoreId} + user={user} + /> + )} + + {/* Delete Confirmation */} + {deletingTask && ( +
+
+

Supprimer cette tâche ?

+

{deletingTask.title}

+
+ + +
+
- ) : ( - filteredTasks.map((task: TaskWithRelations) => ( - handleComplete(task.id)} - onEdit={() => { setEditingTask(task); setShowForm(true); }} - onDelete={() => setDeletingTask(task)} - canEdit={canEdit} - /> - )) )}
- - {/* FAB Button */} - {canEdit && ( - - )} - - {/* Form Modal */} - {showForm && ( - { setShowForm(false); setEditingTask(null); }} - selectedStoreId={selectedStoreId} - user={user} - /> - )} - - {/* Delete Confirmation */} - {deletingTask && ( -
-
-

Supprimer cette tâche ?

-

{deletingTask.title}

-
- - -
-
-
- )} -
+
); }