feat(insights): UX gap closure — i18n, network graph, recalc panel, toasts
Bugs fixes: - network-graph.tsx: 2 strings hardcoded FR → props i18n (untitledLabel, resetFocusLabel) - Panneau recalcul: clés i18n réutilisées avec mauvais sens → nouvelles clés recalcSystem.* - 13 locales: section insightsView.* complète (67 clés × 13 = 871 traductions) UX features: - Hint /insights ≠ /graph (semanticGraphLegend + lien vers /graph) - Toasts succès/échec/zéro-clusters après analyse (analysisSuccess/Failed/NoClusters) - État vide différencié: emptyNeedMoreNotes si < 10 notes - Tips contextuels sections Bridge Notes et Suggestions Sprint: - 4 epics marqués done (3,4,5,6 — toutes stories terminées) - sprint-status.yaml last_updated corrigé
This commit is contained in:
@@ -31,6 +31,9 @@ interface NetworkGraphProps {
|
||||
onNoteSelect: (id: string) => void
|
||||
selectedClusterId?: string | null
|
||||
onClusterSelect?: (id: string | null) => void
|
||||
untitledLabel?: string
|
||||
resetFocusLabel?: string
|
||||
fitViewLabel?: string
|
||||
}
|
||||
|
||||
export function NetworkGraph({
|
||||
@@ -39,7 +42,10 @@ export function NetworkGraph({
|
||||
bridgeNotes,
|
||||
onNoteSelect,
|
||||
selectedClusterId = null,
|
||||
onClusterSelect
|
||||
onClusterSelect,
|
||||
untitledLabel = 'Untitled',
|
||||
resetFocusLabel = 'Reset focus',
|
||||
fitViewLabel = 'Fit view',
|
||||
}: NetworkGraphProps) {
|
||||
const svgRef = useRef<SVGSVGElement>(null)
|
||||
const containerRef = useRef<HTMLDivElement>(null)
|
||||
@@ -268,7 +274,7 @@ export function NetworkGraph({
|
||||
.attr('fill', '#4b5563')
|
||||
.attr('class', 'dark:fill-zinc-300 font-sans pointer-events-none')
|
||||
.text(d => {
|
||||
const title = d.title || 'Sans titre'
|
||||
const title = d.title || untitledLabel
|
||||
return title.length > 20 ? title.substring(0, 18) + '...' : title
|
||||
})
|
||||
|
||||
@@ -368,7 +374,7 @@ export function NetworkGraph({
|
||||
onClick={() => onClusterSelect?.(null)}
|
||||
className="px-3 py-1.5 rounded-full border border-rose-200 bg-rose-50 dark:bg-rose-950/20 dark:border-rose-900/40 text-rose-500 text-[9px] font-bold uppercase tracking-wider hover:bg-rose-100 dark:hover:bg-rose-950/30 transition-all shadow-sm"
|
||||
>
|
||||
Réinitialiser focus
|
||||
{resetFocusLabel}
|
||||
</button>
|
||||
)}
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user