Add claude-code-source-code and claw-code directories

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
chauncygu
2026-03-31 09:24:58 -07:00
parent fb2057a9fc
commit 33d153f5b8
2049 changed files with 522662 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
import { useCallback, useSyncExternalStore } from 'react'
import { formatDuration } from '../utils/format.js'
/**
* Hook that returns formatted elapsed time since startTime.
* Uses useSyncExternalStore with interval-based updates for efficiency.
*
* @param startTime - Unix timestamp in ms
* @param isRunning - Whether to actively update the timer
* @param ms - How often should we trigger updates?
* @param pausedMs - Total paused duration to subtract
* @param endTime - If set, freezes the duration at this timestamp (for
* terminal tasks). Without this, viewing a 2-min task 30 min after
* completion would show "32m".
* @returns Formatted duration string (e.g., "1m 23s")
*/
export function useElapsedTime(
startTime: number,
isRunning: boolean,
ms: number = 1000,
pausedMs: number = 0,
endTime?: number,
): string {
const get = () =>
formatDuration(Math.max(0, (endTime ?? Date.now()) - startTime - pausedMs))
const subscribe = useCallback(
(notify: () => void) => {
if (!isRunning) return () => {}
const interval = setInterval(notify, ms)
return () => clearInterval(interval)
},
[isRunning, ms],
)
return useSyncExternalStore(subscribe, get, get)
}