{"version":3,"sources":["../../src/use-document-visibility/index.ts"],"sourcesContent":["import { useEventListener } from '../use-event-listener'\nimport { useLatest } from '../use-latest'\nimport { useSafeState } from '../use-safe-state'\n\nexport type UseDocumentVisibilityCallback = (state: string, event: Event) => void\n\n/**\n * A React Hook that returns `document.visibilityState`.\n */\nexport function useDocumentVisibility(callback?: UseDocumentVisibilityCallback): DocumentVisibilityState {\n  const latest = useLatest({ callback })\n\n  const [visibility, setVisibility] = useSafeState<DocumentVisibilityState>('visible')\n\n  useEventListener(\n    () => document,\n    'visibilitychange',\n    (e: Event) => {\n      const state = document.visibilityState\n      setVisibility(state)\n      latest.current.callback?.(state, e)\n    },\n  )\n\n  return visibility\n}\n"],"names":["useDocumentVisibility","callback","latest","useLatest","useSafeState","visibility","setVisibility","useEventListener","document","e","state","visibilityState","current"],"mappings":";;;;+BASgBA;;;eAAAA;;;gCATiB;yBACP;4BACG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOtB,SAASA,sBAAsBC,QAAwC;IAC5E,IAAMC,SAASC,IAAAA,oBAAS,EAAC;QAAEF,UAAAA;IAAS;IAEpC,IAAoCG,iCAAAA,IAAAA,0BAAY,EAA0B,gBAAnEC,aAA6BD,kBAAjBE,gBAAiBF;IAEpCG,IAAAA,kCAAgB,EACd;eAAMC;OACN,oBACA,SAACC;YAGCP,0BAAAA;QAFA,IAAMQ,QAAQF,SAASG,eAAe;QACtCL,cAAcI;SACdR,2BAAAA,CAAAA,kBAAAA,OAAOU,OAAO,EAACX,QAAQ,cAAvBC,+CAAAA,8BAAAA,iBAA0BQ,OAAOD;IACnC;IAGF,OAAOJ;AACT"}