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()