diff --git a/attached_assets/{233371AA-29E0-4DDB-A0E3-B792E4B62C9E}_1755173552015.png b/attached_assets/{233371AA-29E0-4DDB-A0E3-B792E4B62C9E}_1755173552015.png new file mode 100644 index 0000000..f347179 Binary files /dev/null and b/attached_assets/{233371AA-29E0-4DDB-A0E3-B792E4B62C9E}_1755173552015.png differ diff --git a/client/src/pages/SavTickets.tsx b/client/src/pages/SavTickets.tsx index 3acd203..45fbf6b 100644 --- a/client/src/pages/SavTickets.tsx +++ b/client/src/pages/SavTickets.tsx @@ -162,13 +162,17 @@ export default function SavTickets() { // Add comment mutation const addCommentMutation = useMutation({ mutationFn: async (data: { ticketId: number; comment: string }) => { - const response = await apiRequest(`/api/sav-tickets/${data.ticketId}/comments`, "POST", { - comment: data.comment + const response = await apiRequest(`/api/sav/tickets/${data.ticketId}/history`, "POST", { + description: data.comment // ✅ Utilise 'description' selon le schéma API }); return response; }, onSuccess: () => { queryClient.invalidateQueries({ queryKey: ['/api/sav/tickets'] }); + // ✅ Invalider aussi les détails du ticket pour rafraîchir l'historique + if (selectedTicket) { + queryClient.invalidateQueries({ queryKey: [`/api/sav/tickets/${selectedTicket.id}`] }); + } setShowCommentModal(false); setNewComment(""); toast({ @@ -188,7 +192,7 @@ export default function SavTickets() { // Delete ticket mutation const deleteTicketMutation = useMutation({ mutationFn: async (ticketId: number) => { - const response = await apiRequest(`/api/sav-tickets/${ticketId}`, "DELETE"); + const response = await apiRequest(`/api/sav/tickets/${ticketId}`, "DELETE"); return response; }, onSuccess: () => { @@ -271,6 +275,13 @@ export default function SavTickets() { setShowDetailModal(true); }; + // Query pour récupérer les détails complets du ticket avec historique + const { data: ticketDetails } = useQuery({ + queryKey: [`/api/sav/tickets/${selectedTicket?.id}`], + enabled: !!selectedTicket && showDetailModal, + staleTime: 0, // Toujours récupérer les derniers commentaires + }); + // Handle editing ticket const handleEditTicket = (ticket: SavTicketWithRelations) => { setSelectedTicket(ticket); @@ -897,6 +908,31 @@ export default function SavTickets() { + + {/* Historique et commentaires */} + {ticketDetails?.history && ticketDetails.history.length > 0 && ( +
{entry.description}
+ {entry.creator && ( +Par: {entry.creator.username}
+ )} +