{"version":3,"file":"useLoadedNavigation.js","names":[],"sources":["esm/link/useLoadedNavigation.js"],"sourcesContent":["import {\n  useNavigation\n} from \"@react-navigation/native\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nimport { useOneRouter } from \"../router/router\";\nfunction useLoadedNavigation() {\n  const { navigationRef } = useOneRouter();\n  const navigation = useNavigation();\n  const isMounted = useRef(true);\n  const pending = useRef([]);\n  useEffect(() => {\n    isMounted.current = true;\n    return () => {\n      isMounted.current = false;\n    };\n  }, []);\n  const flush = useCallback(() => {\n    if (isMounted.current) {\n      const pendingCallbacks = pending.current;\n      pending.current = [];\n      pendingCallbacks.forEach((callback) => {\n        callback(navigation);\n      });\n    }\n  }, [navigation]);\n  useEffect(() => {\n    if (navigationRef.current) {\n      flush();\n    }\n  }, [flush, navigationRef]);\n  const push = useCallback(\n    (fn) => {\n      pending.current.push(fn);\n      if (navigationRef.current) {\n        flush();\n      }\n    },\n    [flush, navigationRef]\n  );\n  return push;\n}\nfunction useOptionalNavigation() {\n  const [navigation, setNavigation] = useState(null);\n  const loadNavigation = useLoadedNavigation();\n  useEffect(() => {\n    loadNavigation((nav) => setNavigation(nav));\n  }, [loadNavigation]);\n  return navigation;\n}\nexport {\n  useLoadedNavigation,\n  useOptionalNavigation\n};\n//# sourceMappingURL=useLoadedNavigation.js.map\n"],"mappings":";;;;;AAKA,SAAS,sBAAsB;CAC7B,MAAM,EAAE,kBAAkB,aAAa;CACvC,MAAM,aAAa,cAAc;CACjC,MAAM,YAAY,OAAO,IAAI;CAC7B,MAAM,UAAU,OAAO,CAAC,CAAC;CACzB,gBAAgB;EACd,UAAU,UAAU;EACpB,aAAa;GACX,UAAU,UAAU;EACtB;CACF,GAAG,CAAC,CAAC;CACL,MAAM,QAAQ,kBAAkB;EAC9B,IAAI,UAAU,SAAS;GACrB,MAAM,mBAAmB,QAAQ;GACjC,QAAQ,UAAU,CAAC;GACnB,iBAAiB,SAAS,aAAa;IACrC,SAAS,UAAU;GACrB,CAAC;EACH;CACF,GAAG,CAAC,UAAU,CAAC;CACf,gBAAgB;EACd,IAAI,cAAc,SAAS;GACzB,MAAM;EACR;CACF,GAAG,CAAC,OAAO,aAAa,CAAC;CACzB,MAAM,OAAO,aACV,OAAO;EACN,QAAQ,QAAQ,KAAK,EAAE;EACvB,IAAI,cAAc,SAAS;GACzB,MAAM;EACR;CACF,GACA,CAAC,OAAO,aAAa,CACvB;CACA,OAAO;AACT;AACA,SAAS,wBAAwB;CAC/B,MAAM,CAAC,YAAY,iBAAiB,SAAS,IAAI;CACjD,MAAM,iBAAiB,oBAAoB;CAC3C,gBAAgB;EACd,gBAAgB,QAAQ,cAAc,GAAG,CAAC;CAC5C,GAAG,CAAC,cAAc,CAAC;CACnB,OAAO;AACT"}