From 332b5711ff94771cc880e70ecbd06a512e985f50 Mon Sep 17 00:00:00 2001 From: IliesAllali Date: Wed, 4 Nov 2026 19:24:19 +0100 Subject: [PATCH] mesure : proposal_sent pour toutes les propositions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit L'événement ne partait que de la fenêtre d'envoi (App.jsx) : les raccourcis de la fiche passent par handleSubmitContributionSession sans lui, d'où zéro proposal_sent en 60 jours pour deux propositions relues. L'événement part maintenant de la fonction commune, après réponse du serveur, avec le statut (pending, ou approved pour un co-gestionnaire). Co-Authored-By: Claude Opus 5.5 --- frontend/src/App.jsx | 1 - frontend/src/hooks/useContributions.js | 7 +++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx index e1de313..86d5a82 100644 --- a/frontend/src/App.jsx +++ b/frontend/src/App.jsx @@ -1684,7 +1684,6 @@ function App() { setShowContribModal(false) setContribSubmitError('') setContribSuccess(true) - trackAppEvent('proposal_sent', { changes: changes.length, tree_id: opaqueTreeId }) setDraftNotice('') setTimeout(() => setContribSuccess(false), 6000) } catch (err) { diff --git a/frontend/src/hooks/useContributions.js b/frontend/src/hooks/useContributions.js index deb11e8..3db76a6 100644 --- a/frontend/src/hooks/useContributions.js +++ b/frontend/src/hooks/useContributions.js @@ -148,6 +148,13 @@ export function useContributions({ canEditCurrentTree, canSubmitContribution, tr try { const result = await submitContributionSession(treeContext.treeId, payload, treeContext.accessToken) + // Ici et pas dans l'appelant : toutes les propositions passent par cette fonction (fenêtre d'envoi + // comme raccourcis de la fiche). « approved » : un co-gestionnaire, appliqué sans relecture. + trackAppEvent('proposal_sent', { + changes: Array.isArray(payload.changes) ? payload.changes.length : 0, + status: result?.session?.status || 'pending', + tree_id: toOpaqueTreeId(treeContext.treeId), + }) if (result?.session?.status === 'approved') { await refreshCurrentTreeGraph()