"use client"; import { useEffect, useRef, type RefObject } from "react"; // 弹层(Drawer / ContextDrawer)关闭后把焦点还给触发元素(a11y 焦点管理,CR-H11)。 // wasOpenRef 门闩:仅在「曾打开过」后的关闭才还原,避免从未打开时误抢焦点。 // null-safe:triggerRef 或其 current 为空时静默跳过。 export function useRestoreFocus( open: boolean, triggerRef?: RefObject, ): void { const wasOpenRef = useRef(false); useEffect(() => { if (!open) { if (wasOpenRef.current) { wasOpenRef.current = false; triggerRef?.current?.focus(); } return; } wasOpenRef.current = true; }, [open, triggerRef]); }