fix(admin-ui): TimeTravelPicker → visual SVG timeline

This commit is contained in:
Александр Зимин
2026-05-10 19:50:17 +00:00
parent b7561a7e3b
commit 94da10f487
3 changed files with 503 additions and 158 deletions
@@ -227,6 +227,18 @@ function DictionaryDetail() {
})
}
// Уникальные validFrom timestamps для timeline marks. Используем raw
// recordsResult (не filtered) чтобы видеть все версии независимо от scope/q
// фильтров.
const recordTimestamps = useMemo(() => {
const set = new Set<number>()
for (const r of recordsResult.data ?? []) {
const ts = new Date(r.validFrom).getTime()
if (!Number.isNaN(ts)) set.add(ts)
}
return Array.from(set).sort((a, b) => a - b)
}, [recordsResult.data])
const filteredRecords = useMemo(() => {
const raw = recordsResult.data ?? []
if (raw.length === 0) return raw
@@ -624,6 +636,7 @@ function DictionaryDetail() {
onChange={(iso) => setTimeTravelAt(iso)}
onClear={() => setTimeTravelAt(undefined)}
onClose={() => setTimeTravelOpen(false)}
marks={recordTimestamps}
/>
)}