You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 line
2.8 KiB

{"ast":null,"code":"import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport { nanoid } from 'nanoid/non-secure';\nimport * as React from 'react';\nimport { SingleNavigatorContext } from \"./EnsureSingleNavigator\";\nexport default function useRegisterNavigator() {\n var _React$useState = React.useState(function () {\n return nanoid();\n }),\n _React$useState2 = _slicedToArray(_React$useState, 1),\n key = _React$useState2[0];\n var container = React.useContext(SingleNavigatorContext);\n if (container === undefined) {\n throw new Error(\"Couldn't register the navigator. Have you wrapped your app with 'NavigationContainer'?\\n\\nThis can also happen if there are multiple copies of '@react-navigation' packages installed.\");\n }\n React.useEffect(function () {\n var register = container.register,\n unregister = container.unregister;\n register(key);\n return function () {\n return unregister(key);\n };\n }, [container, key]);\n return key;\n}","map":{"version":3,"sources":["useRegisterNavigator.tsx"],"names":["nanoid","React","SingleNavigatorContext","useRegisterNavigator","key","useState","container","useContext","undefined","Error","useEffect","register","unregister"],"mappings":";AAAA,SAASA,MAAM,QAAQ,mBAAmB;AAC1C,OAAO,KAAKC,KAAK,MAAM,OAAO;AAE9B,SAASC,sBAAsB;AAM/B,eAAe,SAASC,oBAAoB,GAAG;EAC7C,sBAAcF,KAAK,CAACI,QAAQ,CAAC;MAAA,OAAML,MAAM,EAAE;IAAA,EAAC;IAAA;IAArCI,GAAG;EACV,IAAME,SAAS,GAAGL,KAAK,CAACM,UAAU,CAACL,sBAAsB,CAAC;EAE1D,IAAII,SAAS,KAAKE,SAAS,EAAE;IAC3B,MAAM,IAAIC,KAAK,CACb,wLAAwL,CACzL;EACH;EAEAR,KAAK,CAACS,SAAS,CAAC,YAAM;IACpB,IAAQC,QAAQ,GAAiBL,SAAS,CAAlCK,QAAQ;MAAEC,UAAAA,GAAeN,SAAS,CAAxBM,UAAAA;IAElBD,QAAQ,CAACP,GAAG,CAAC;IAEb,OAAO;MAAA,OAAMQ,UAAU,CAACR,GAAG,CAAC;IAAA;EAC9B,CAAC,EAAE,CAACE,SAAS,EAAEF,GAAG,CAAC,CAAC;EAEpB,OAAOA,GAAG;AACZ","sourceRoot":"../../src","sourcesContent":["import { nanoid } from 'nanoid/non-secure';\nimport * as React from 'react';\nimport { SingleNavigatorContext } from './EnsureSingleNavigator';\n\n/**\n * Register a navigator in the parent context (either a navigation container or a screen).\n * This is used to prevent multiple navigators under a single container or screen.\n */\nexport default function useRegisterNavigator() {\n const [key] = React.useState(() => nanoid());\n const container = React.useContext(SingleNavigatorContext);\n if (container === undefined) {\n throw new Error(\"Couldn't register the navigator. Have you wrapped your app with 'NavigationContainer'?\\n\\nThis can also happen if there are multiple copies of '@react-navigation' packages installed.\");\n }\n React.useEffect(() => {\n const {\n register,\n unregister\n } = container;\n register(key);\n return () => unregister(key);\n }, [container, key]);\n return key;\n}\n//# sourceMappingURL=useRegisterNavigator.js.map"]},"metadata":{},"sourceType":"module"}