mirror of
https://github.com/IliesAllali/parenthese.git
synced 2026-11-14 00:22:03 +00:00
Propositions à relire : la pastille s'allume dès l'ouverture de l'arbre
Le compte des propositions en attente ne se chargeait qu'à l'ouverture de Partager ou du panneau des propositions. Il se charge maintenant quand le propriétaire ouvre son arbre et se remet à jour quand il revient sur l'onglet. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
352951979a
commit
0ad44fbaa7
1 file changed
+21
-1
@@ -1,4 +1,4 @@
|
||||
import { useState } from 'react'
|
||||
import { useEffect, useState } from 'react'
|
||||
import {
|
||||
listContributionSessions,
|
||||
submitContributionSession,
|
||||
@@ -21,6 +21,26 @@ const EMPTY_CONTRIB_STATE = {
|
||||
export function useContributions({ canEditCurrentTree, canSubmitContribution, treeContext, refreshCurrentTreeGraph }) {
|
||||
const [contribState, setContribState] = useState({ ...EMPTY_CONTRIB_STATE })
|
||||
|
||||
// Pastille « Propositions à relire » : le compte se charge dès que le propriétaire ouvre son arbre, et se
|
||||
// remet à jour quand il revient sur l'onglet, sans attendre qu'il ouvre le panneau des propositions
|
||||
const { treeId, accessToken } = treeContext
|
||||
useEffect(() => {
|
||||
if (!canEditCurrentTree || !treeId || !accessToken) return undefined
|
||||
let cancelled = false
|
||||
const load = async () => {
|
||||
try {
|
||||
const sessions = await listContributionSessions(treeId, accessToken, 'pending')
|
||||
if (!cancelled) setContribState((current) => ({ ...current, sessions }))
|
||||
} catch {
|
||||
// Le panneau affichera l'erreur s'il est ouvert ; la pastille reste telle quelle
|
||||
}
|
||||
}
|
||||
load()
|
||||
const onVisible = () => { if (document.visibilityState === 'visible') load() }
|
||||
document.addEventListener('visibilitychange', onVisible)
|
||||
return () => { cancelled = true; document.removeEventListener('visibilitychange', onVisible) }
|
||||
}, [canEditCurrentTree, treeId, accessToken])
|
||||
|
||||
const resetContribState = () => {
|
||||
setContribState({ ...EMPTY_CONTRIB_STATE })
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user