fix: replay completion motion reliably
ci / gitleaks (push) Successful in 6s
ci / docker (push) Successful in 3m29s

This commit is contained in:
2026-09-09 09:52:53 +08:00
parent aff070d2f7
commit 17005b0a50
4 changed files with 55 additions and 25 deletions
+26
View File
@@ -0,0 +1,26 @@
type CompletionId = string
type CompletionTimer = number
export function createCompletionPulse(
activate: (id: CompletionId) => void,
deactivate: (id: CompletionId) => void,
duration = 420,
) {
const timers = new Map<CompletionId, CompletionTimer>()
return (id: CompletionId) => {
const previous = timers.get(id)
if (previous !== undefined) {
window.clearTimeout(previous)
deactivate(id)
}
window.requestAnimationFrame(() => {
activate(id)
timers.set(id, window.setTimeout(() => {
deactivate(id)
timers.delete(id)
}, duration))
})
}
}