"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<HTMLElement | null>,
): void {
  const wasOpenRef = useRef(false);

  useEffect(() => {
    if (!open) {
      if (wasOpenRef.current) {
        wasOpenRef.current = false;
        triggerRef?.current?.focus();
      }
      return;
    }
    wasOpenRef.current = true;
  }, [open, triggerRef]);
}
