feat: market event

This commit is contained in:
OpenSquared
2026-06-29 21:16:29 +02:00
parent 5e819b5b67
commit b223f50f8b
2 changed files with 98 additions and 9 deletions

View File

@@ -1020,6 +1020,9 @@ function ExplanationScore({
templates: CausalTemplate[]
causalInsts: string[]
}) {
const [refreshing, setRefreshing] = useState(false)
const [refreshDone, setRefreshDone] = useState(false)
// For each linked event, compute the comprehension score and collect scored ones
const scored: number[] = []
const totalLinked: number[] = []
@@ -1051,6 +1054,19 @@ function ExplanationScore({
const barCls = globalScore == null ? 'bg-slate-600'
: globalScore >= 70 ? 'bg-emerald-500' : globalScore >= 40 ? 'bg-amber-500' : 'bg-red-500'
const handleRefresh = async () => {
setRefreshing(true)
try {
await api.post('/causal-lab/auto-analyze/refresh')
setRefreshDone(true)
setTimeout(() => setRefreshDone(false), 3000)
} finally {
setRefreshing(false)
}
}
const needsRefresh = totalLinked.length > 0 && scored.length === 0 && !refreshDone
return (
<div className="flex items-center gap-3 px-4 py-2.5 rounded-xl border border-slate-700/30 bg-dark-800/50">
<span className="text-xs text-slate-500 whitespace-nowrap">Note globale</span>
@@ -1063,6 +1079,18 @@ function ExplanationScore({
<span className="text-[10px] text-slate-600 whitespace-nowrap">
{scored.length}/{totalLinked.length} graphes
</span>
{needsRefresh && (
<button
onClick={handleRefresh}
disabled={refreshing}
className="text-[10px] text-violet-400 hover:text-violet-200 bg-violet-900/20 hover:bg-violet-900/40 border border-violet-800/40 rounded px-2 py-1 whitespace-nowrap disabled:opacity-50 transition-colors"
>
{refreshing ? '…' : 'Recalculer'}
</button>
)}
{refreshDone && (
<span className="text-[10px] text-emerald-500 whitespace-nowrap"> Rechargez la page</span>
)}
</div>
)
}