MCPcopy Create free account
hub / github.com/codeaashu/claude-code / useAriaLive

Function useAriaLive

web/hooks/useAriaLive.ts:38–65  ·  view source on GitHub ↗
({
  politeness = "polite",
  delay = 50,
}: UseAriaLiveOptions = {})

Source from the content-addressed store, hash-verified

36 * <div {...liveRegionProps} className="sr-only">{announcement}</div>
37 */
38export function useAriaLive({
39 politeness = "polite",
40 delay = 50,
41}: UseAriaLiveOptions = {}): UseAriaLiveReturn {
42 const [announcement, setAnnouncement] = useState("");
43 const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);
44
45 const announce = useCallback(
46 (message: string) => {
47 setAnnouncement("");
48 if (timerRef.current) clearTimeout(timerRef.current);
49 timerRef.current = setTimeout(() => setAnnouncement(message), delay);
50 },
51 [delay]
52 );
53
54 useEffect(() => () => { if (timerRef.current) clearTimeout(timerRef.current); }, []);
55
56 return {
57 announcement,
58 announce,
59 liveRegionProps: {
60 role: "status",
61 "aria-live": politeness,
62 "aria-atomic": true,
63 },
64 };
65}

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected