import { useEffect } from "react"; import { dismissMapNotice, showMapNotice } from "@/features/map/core"; const RECONNECT_NOTICE_DELAY_MS = 15_000; const RECONNECT_NOTICE_ID = "workbench-sync-reconnecting"; export function useWorkbenchSyncNotice(reconnecting: boolean) { useEffect(() => { if (!reconnecting) { dismissMapNotice(RECONNECT_NOTICE_ID); return; } // Scheduled SSE renewal and brief outages normally recover within this window. const timer = window.setTimeout(() => { showMapNotice({ id: RECONNECT_NOTICE_ID, tone: "warning", title: "业务同步正在重连", message: "当前数据可能陈旧,连接恢复后将自动更新。", duration: Infinity }); }, RECONNECT_NOTICE_DELAY_MS); return () => { window.clearTimeout(timer); dismissMapNotice(RECONNECT_NOTICE_ID); }; }, [reconnecting]); }