Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
16 lines
516 B
TypeScript
16 lines
516 B
TypeScript
import { useEffect, useState } from "react";
|
|
|
|
export function useDelayedBoolean(value: boolean, delayMs: number): boolean {
|
|
const [delayedValue, setDelayedValue] = useState(false);
|
|
useEffect(() => {
|
|
if (!value) {
|
|
setDelayedValue(false);
|
|
return;
|
|
}
|
|
// timing: caller-provided debounce before reflecting the value as true
|
|
const timer = window.setTimeout(() => setDelayedValue(true), delayMs);
|
|
return () => window.clearTimeout(timer);
|
|
}, [delayMs, value]);
|
|
return delayedValue;
|
|
}
|