{
  "mappings": "AAAA,cAAc,sBAAsB,yBAAyB;AAK7D,OAAO,iBAAS,eAAe;;;;;AAsB/B,OAAO,iBAAS;AAIhB,OAAO,iBAAS,UAAU,SAAS",
  "names": [],
  "sources": [
    "src/usePresence.ts"
  ],
  "version": 3,
  "sourcesContent": [
    "import type { PresenceContextProps, UsePresenceResult } from '@tamagui/web'\nimport * as React from 'react'\n\nimport { PresenceContext } from './PresenceContext'\n\nexport function usePresence(): UsePresenceResult {\n  const context = React.useContext(PresenceContext)\n\n  if (!context) {\n    return [true, null, context]\n  }\n\n  const { id, isPresent, onExitComplete, register } = context\n\n  React.useEffect(() => register(id), [])\n\n  const safeToRemove = () => onExitComplete?.(id)\n\n  return !isPresent && onExitComplete\n    ? [false, safeToRemove, context]\n    : [true, undefined, context]\n}\n\n/**\n * Similar to `usePresence`, except `useIsPresent` simply returns whether or not the component is present.\n * There is no `safeToRemove` function.\n */\nexport function useIsPresent(): boolean {\n  return isPresent(React.useContext(PresenceContext))\n}\n\nexport function isPresent(context: PresenceContextProps | null): boolean {\n  return context === null ? true : context.isPresent\n}\n"
  ]
}