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
41 KiB
1 line
41 KiB
{"ast":null,"code":"import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nvar _excluded = [\"key\", \"routeNames\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nimport { CommonActions } from '@react-navigation/routers';\nimport * as React from 'react';\nimport checkDuplicateRouteNames from \"./checkDuplicateRouteNames\";\nimport checkSerializable from \"./checkSerializable\";\nimport { NOT_INITIALIZED_ERROR } from \"./createNavigationContainerRef\";\nimport EnsureSingleNavigator from \"./EnsureSingleNavigator\";\nimport findFocusedRoute from \"./findFocusedRoute\";\nimport NavigationBuilderContext from \"./NavigationBuilderContext\";\nimport NavigationContainerRefContext from \"./NavigationContainerRefContext\";\nimport NavigationContext from \"./NavigationContext\";\nimport NavigationRouteContext from \"./NavigationRouteContext\";\nimport NavigationStateContext from \"./NavigationStateContext\";\nimport UnhandledActionContext from \"./UnhandledActionContext\";\nimport useChildListeners from \"./useChildListeners\";\nimport useEventEmitter from \"./useEventEmitter\";\nimport useKeyedChildListeners from \"./useKeyedChildListeners\";\nimport useOptionsGetters from \"./useOptionsGetters\";\nimport { ScheduleUpdateContext } from \"./useScheduleUpdate\";\nimport useSyncState from \"./useSyncState\";\nvar serializableWarnings = [];\nvar duplicateNameWarnings = [];\nvar getPartialState = function getPartialState(state) {\n if (state === undefined) {\n return;\n }\n var key = state.key,\n routeNames = state.routeNames,\n partialState = _objectWithoutProperties(state, _excluded);\n return _objectSpread(_objectSpread({}, partialState), {}, {\n stale: true,\n routes: state.routes.map(function (route) {\n if (route.state === undefined) {\n return route;\n }\n return _objectSpread(_objectSpread({}, route), {}, {\n state: getPartialState(route.state)\n });\n })\n });\n};\nvar BaseNavigationContainer = React.forwardRef(function BaseNavigationContainer(_ref, ref) {\n var initialState = _ref.initialState,\n onStateChange = _ref.onStateChange,\n onUnhandledAction = _ref.onUnhandledAction,\n independent = _ref.independent,\n children = _ref.children;\n var parent = React.useContext(NavigationStateContext);\n if (!parent.isDefault && !independent) {\n throw new Error(\"Looks like you have nested a 'NavigationContainer' inside another. Normally you need only one container at the root of the app, so this was probably an error. If this was intentional, pass 'independent={true}' explicitly. Note that this will make the child navigators disconnected from the parent and you won't be able to navigate between them.\");\n }\n var _useSyncState = useSyncState(function () {\n return getPartialState(initialState == null ? undefined : initialState);\n }),\n _useSyncState2 = _slicedToArray(_useSyncState, 5),\n state = _useSyncState2[0],\n getState = _useSyncState2[1],\n setState = _useSyncState2[2],\n scheduleUpdate = _useSyncState2[3],\n flushUpdates = _useSyncState2[4];\n var isFirstMountRef = React.useRef(true);\n var navigatorKeyRef = React.useRef();\n var getKey = React.useCallback(function () {\n return navigatorKeyRef.current;\n }, []);\n var setKey = React.useCallback(function (key) {\n navigatorKeyRef.current = key;\n }, []);\n var _useChildListeners = useChildListeners(),\n listeners = _useChildListeners.listeners,\n addListener = _useChildListeners.addListener;\n var _useKeyedChildListene = useKeyedChildListeners(),\n keyedListeners = _useKeyedChildListene.keyedListeners,\n addKeyedListener = _useKeyedChildListene.addKeyedListener;\n var dispatch = React.useCallback(function (action) {\n if (listeners.focus[0] == null) {\n console.error(NOT_INITIALIZED_ERROR);\n } else {\n listeners.focus[0](function (navigation) {\n return navigation.dispatch(action);\n });\n }\n }, [listeners.focus]);\n var canGoBack = React.useCallback(function () {\n if (listeners.focus[0] == null) {\n return false;\n }\n var _listeners$focus$ = listeners.focus[0](function (navigation) {\n return navigation.canGoBack();\n }),\n result = _listeners$focus$.result,\n handled = _listeners$focus$.handled;\n if (handled) {\n return result;\n } else {\n return false;\n }\n }, [listeners.focus]);\n var resetRoot = React.useCallback(function (state) {\n var _ref2;\n var _keyedListeners$getSt, _keyedListeners$getSt2;\n var target = (_ref2 = state === null || state === void 0 ? void 0 : state.key) != null ? _ref2 : (_keyedListeners$getSt = (_keyedListeners$getSt2 = keyedListeners.getState).root) === null || _keyedListeners$getSt === void 0 ? void 0 : _keyedListeners$getSt.call(_keyedListeners$getSt2).key;\n if (target == null) {\n console.error(NOT_INITIALIZED_ERROR);\n } else {\n listeners.focus[0](function (navigation) {\n return navigation.dispatch(_objectSpread(_objectSpread({}, CommonActions.reset(state)), {}, {\n target: target\n }));\n });\n }\n }, [keyedListeners.getState, listeners.focus]);\n var getRootState = React.useCallback(function () {\n var _keyedListeners$getSt3, _keyedListeners$getSt4;\n return (_keyedListeners$getSt3 = (_keyedListeners$getSt4 = keyedListeners.getState).root) === null || _keyedListeners$getSt3 === void 0 ? void 0 : _keyedListeners$getSt3.call(_keyedListeners$getSt4);\n }, [keyedListeners.getState]);\n var getCurrentRoute = React.useCallback(function () {\n var state = getRootState();\n if (state == null) {\n return undefined;\n }\n var route = findFocusedRoute(state);\n return route;\n }, [getRootState]);\n var emitter = useEventEmitter();\n var _useOptionsGetters = useOptionsGetters({}),\n addOptionsGetter = _useOptionsGetters.addOptionsGetter,\n getCurrentOptions = _useOptionsGetters.getCurrentOptions;\n var navigation = React.useMemo(function () {\n return _objectSpread(_objectSpread(_objectSpread({}, Object.keys(CommonActions).reduce(function (acc, name) {\n acc[name] = function () {\n return dispatch(CommonActions[name].apply(CommonActions, arguments));\n };\n return acc;\n }, {})), emitter.create('root')), {}, {\n dispatch: dispatch,\n resetRoot: resetRoot,\n isFocused: function isFocused() {\n return true;\n },\n canGoBack: canGoBack,\n getParent: function getParent() {\n return undefined;\n },\n getState: function getState() {\n return stateRef.current;\n },\n getRootState: getRootState,\n getCurrentRoute: getCurrentRoute,\n getCurrentOptions: getCurrentOptions,\n isReady: function isReady() {\n return listeners.focus[0] != null;\n }\n });\n }, [canGoBack, dispatch, emitter, getCurrentOptions, getCurrentRoute, getRootState, listeners.focus, resetRoot]);\n React.useImperativeHandle(ref, function () {\n return navigation;\n }, [navigation]);\n var onDispatchAction = React.useCallback(function (action, noop) {\n emitter.emit({\n type: '__unsafe_action__',\n data: {\n action: action,\n noop: noop,\n stack: stackRef.current\n }\n });\n }, [emitter]);\n var lastEmittedOptionsRef = React.useRef();\n var onOptionsChange = React.useCallback(function (options) {\n if (lastEmittedOptionsRef.current === options) {\n return;\n }\n lastEmittedOptionsRef.current = options;\n emitter.emit({\n type: 'options',\n data: {\n options: options\n }\n });\n }, [emitter]);\n var stackRef = React.useRef();\n var builderContext = React.useMemo(function () {\n return {\n addListener: addListener,\n addKeyedListener: addKeyedListener,\n onDispatchAction: onDispatchAction,\n onOptionsChange: onOptionsChange,\n stackRef: stackRef\n };\n }, [addListener, addKeyedListener, onDispatchAction, onOptionsChange]);\n var scheduleContext = React.useMemo(function () {\n return {\n scheduleUpdate: scheduleUpdate,\n flushUpdates: flushUpdates\n };\n }, [scheduleUpdate, flushUpdates]);\n var isInitialRef = React.useRef(true);\n var getIsInitial = React.useCallback(function () {\n return isInitialRef.current;\n }, []);\n var context = React.useMemo(function () {\n return {\n state: state,\n getState: getState,\n setState: setState,\n getKey: getKey,\n setKey: setKey,\n getIsInitial: getIsInitial,\n addOptionsGetter: addOptionsGetter\n };\n }, [state, getState, setState, getKey, setKey, getIsInitial, addOptionsGetter]);\n var onStateChangeRef = React.useRef(onStateChange);\n var stateRef = React.useRef(state);\n React.useEffect(function () {\n isInitialRef.current = false;\n onStateChangeRef.current = onStateChange;\n stateRef.current = state;\n });\n React.useEffect(function () {\n var hydratedState = getRootState();\n if (process.env.NODE_ENV !== 'production') {\n if (hydratedState !== undefined) {\n var serializableResult = checkSerializable(hydratedState);\n if (!serializableResult.serializable) {\n var location = serializableResult.location,\n reason = serializableResult.reason;\n var path = '';\n var pointer = hydratedState;\n var params = false;\n for (var i = 0; i < location.length; i++) {\n var curr = location[i];\n var prev = location[i - 1];\n pointer = pointer[curr];\n if (!params && curr === 'state') {\n continue;\n } else if (!params && curr === 'routes') {\n if (path) {\n path += ' > ';\n }\n } else if (!params && typeof curr === 'number' && prev === 'routes') {\n var _pointer;\n path += (_pointer = pointer) === null || _pointer === void 0 ? void 0 : _pointer.name;\n } else if (!params) {\n path += \" > \" + curr;\n params = true;\n } else {\n if (typeof curr === 'number' || /^[0-9]+$/.test(curr)) {\n path += \"[\" + curr + \"]\";\n } else if (/^[a-z$_]+$/i.test(curr)) {\n path += \".\" + curr;\n } else {\n path += \"[\" + JSON.stringify(curr) + \"]\";\n }\n }\n }\n var message = \"Non-serializable values were found in the navigation state. Check:\\n\\n\" + path + \" (\" + reason + \")\\n\\nThis can break usage such as persisting and restoring state. This might happen if you passed non-serializable values such as function, class instances etc. in params. If you need to use components with callbacks in your options, you can use 'navigation.setOptions' instead. See https://reactnavigation.org/docs/troubleshooting#i-get-the-warning-non-serializable-values-were-found-in-the-navigation-state for more details.\";\n if (!serializableWarnings.includes(message)) {\n serializableWarnings.push(message);\n console.warn(message);\n }\n }\n var duplicateRouteNamesResult = checkDuplicateRouteNames(hydratedState);\n if (duplicateRouteNamesResult.length) {\n var _message = \"Found screens with the same name nested inside one another. Check:\\n\" + duplicateRouteNamesResult.map(function (locations) {\n return \"\\n\" + locations.join(', ');\n }) + \"\\n\\nThis can cause confusing behavior during navigation. Consider using unique names for each screen instead.\";\n if (!duplicateNameWarnings.includes(_message)) {\n duplicateNameWarnings.push(_message);\n console.warn(_message);\n }\n }\n }\n }\n emitter.emit({\n type: 'state',\n data: {\n state: state\n }\n });\n if (!isFirstMountRef.current && onStateChangeRef.current) {\n onStateChangeRef.current(hydratedState);\n }\n isFirstMountRef.current = false;\n }, [getRootState, emitter, state]);\n var defaultOnUnhandledAction = React.useCallback(function (action) {\n if (process.env.NODE_ENV === 'production') {\n return;\n }\n var payload = action.payload;\n var message = \"The action '\" + action.type + \"'\" + (payload ? \" with payload \" + JSON.stringify(action.payload) : '') + \" was not handled by any navigator.\";\n switch (action.type) {\n case 'NAVIGATE':\n case 'PUSH':\n case 'REPLACE':\n case 'JUMP_TO':\n if (payload !== null && payload !== void 0 && payload.name) {\n message += \"\\n\\nDo you have a screen named '\" + payload.name + \"'?\\n\\nIf you're trying to navigate to a screen in a nested navigator, see https://reactnavigation.org/docs/nesting-navigators#navigating-to-a-screen-in-a-nested-navigator.\";\n } else {\n message += \"\\n\\nYou need to pass the name of the screen to navigate to.\\n\\nSee https://reactnavigation.org/docs/navigation-actions for usage.\";\n }\n break;\n case 'GO_BACK':\n case 'POP':\n case 'POP_TO_TOP':\n message += \"\\n\\nIs there any screen to go back to?\";\n break;\n case 'OPEN_DRAWER':\n case 'CLOSE_DRAWER':\n case 'TOGGLE_DRAWER':\n message += \"\\n\\nIs your screen inside a Drawer navigator?\";\n break;\n }\n message += \"\\n\\nThis is a development-only warning and won't be shown in production.\";\n console.error(message);\n }, []);\n var element = React.createElement(NavigationContainerRefContext.Provider, {\n value: navigation\n }, React.createElement(ScheduleUpdateContext.Provider, {\n value: scheduleContext\n }, React.createElement(NavigationBuilderContext.Provider, {\n value: builderContext\n }, React.createElement(NavigationStateContext.Provider, {\n value: context\n }, React.createElement(UnhandledActionContext.Provider, {\n value: onUnhandledAction != null ? onUnhandledAction : defaultOnUnhandledAction\n }, React.createElement(EnsureSingleNavigator, null, children))))));\n if (independent) {\n element = React.createElement(NavigationRouteContext.Provider, {\n value: undefined\n }, React.createElement(NavigationContext.Provider, {\n value: undefined\n }, element));\n }\n return element;\n});\nexport default BaseNavigationContainer;","map":{"version":3,"sources":["BaseNavigationContainer.tsx"],"names":["CommonActions","React","checkDuplicateRouteNames","checkSerializable","NOT_INITIALIZED_ERROR","EnsureSingleNavigator","findFocusedRoute","NavigationBuilderContext","NavigationContainerRefContext","NavigationContext","NavigationRouteContext","NavigationStateContext","UnhandledActionContext","useChildListeners","useEventEmitter","useKeyedChildListeners","useOptionsGetters","ScheduleUpdateContext","useSyncState","serializableWarnings","duplicateNameWarnings","getPartialState","state","undefined","key","routeNames","partialState","stale","routes","map","route","BaseNavigationContainer","forwardRef","initialState","onStateChange","onUnhandledAction","independent","children","ref","parent","useContext","isDefault","Error","getState","setState","scheduleUpdate","flushUpdates","isFirstMountRef","useRef","navigatorKeyRef","getKey","useCallback","current","setKey","listeners","addListener","keyedListeners","addKeyedListener","dispatch","action","focus","console","error","navigation","canGoBack","result","handled","resetRoot","target","root","reset","getRootState","getCurrentRoute","emitter","addOptionsGetter","getCurrentOptions","useMemo","Object","keys","reduce","acc","name","create","isFocused","getParent","stateRef","isReady","useImperativeHandle","onDispatchAction","noop","emit","type","data","stack","stackRef","lastEmittedOptionsRef","onOptionsChange","options","builderContext","scheduleContext","isInitialRef","getIsInitial","context","onStateChangeRef","useEffect","hydratedState","process","env","NODE_ENV","serializableResult","serializable","location","reason","path","pointer","params","i","length","curr","prev","test","JSON","stringify","message","includes","push","warn","duplicateRouteNamesResult","locations","join","defaultOnUnhandledAction","payload","element"],"mappings":"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","sourceRoot":"../../src","sourcesContent":["import { CommonActions } from '@react-navigation/routers';\nimport * as React from 'react';\nimport checkDuplicateRouteNames from './checkDuplicateRouteNames';\nimport checkSerializable from './checkSerializable';\nimport { NOT_INITIALIZED_ERROR } from './createNavigationContainerRef';\nimport EnsureSingleNavigator from './EnsureSingleNavigator';\nimport findFocusedRoute from './findFocusedRoute';\nimport NavigationBuilderContext from './NavigationBuilderContext';\nimport NavigationContainerRefContext from './NavigationContainerRefContext';\nimport NavigationContext from './NavigationContext';\nimport NavigationRouteContext from './NavigationRouteContext';\nimport NavigationStateContext from './NavigationStateContext';\nimport UnhandledActionContext from './UnhandledActionContext';\nimport useChildListeners from './useChildListeners';\nimport useEventEmitter from './useEventEmitter';\nimport useKeyedChildListeners from './useKeyedChildListeners';\nimport useOptionsGetters from './useOptionsGetters';\nimport { ScheduleUpdateContext } from './useScheduleUpdate';\nimport useSyncState from './useSyncState';\nconst serializableWarnings = [];\nconst duplicateNameWarnings = [];\n\n/**\n * Remove `key` and `routeNames` from the state objects recursively to get partial state.\n *\n * @param state Initial state object.\n */\nconst getPartialState = state => {\n if (state === undefined) {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const {\n key,\n routeNames,\n ...partialState\n } = state;\n return {\n ...partialState,\n stale: true,\n routes: state.routes.map(route => {\n if (route.state === undefined) {\n return route;\n }\n return {\n ...route,\n state: getPartialState(route.state)\n };\n })\n };\n};\n\n/**\n * Container component which holds the navigation state.\n * This should be rendered at the root wrapping the whole app.\n *\n * @param props.initialState Initial state object for the navigation tree.\n * @param props.onStateChange Callback which is called with the latest navigation state when it changes.\n * @param props.children Child elements to render the content.\n * @param props.ref Ref object which refers to the navigation object containing helper methods.\n */\nconst BaseNavigationContainer = /*#__PURE__*/React.forwardRef(function BaseNavigationContainer(_ref, ref) {\n let {\n initialState,\n onStateChange,\n onUnhandledAction,\n independent,\n children\n } = _ref;\n const parent = React.useContext(NavigationStateContext);\n if (!parent.isDefault && !independent) {\n throw new Error(\"Looks like you have nested a 'NavigationContainer' inside another. Normally you need only one container at the root of the app, so this was probably an error. If this was intentional, pass 'independent={true}' explicitly. Note that this will make the child navigators disconnected from the parent and you won't be able to navigate between them.\");\n }\n const [state, getState, setState, scheduleUpdate, flushUpdates] = useSyncState(() => getPartialState(initialState == null ? undefined : initialState));\n const isFirstMountRef = React.useRef(true);\n const navigatorKeyRef = React.useRef();\n const getKey = React.useCallback(() => navigatorKeyRef.current, []);\n const setKey = React.useCallback(key => {\n navigatorKeyRef.current = key;\n }, []);\n const {\n listeners,\n addListener\n } = useChildListeners();\n const {\n keyedListeners,\n addKeyedListener\n } = useKeyedChildListeners();\n const dispatch = React.useCallback(action => {\n if (listeners.focus[0] == null) {\n console.error(NOT_INITIALIZED_ERROR);\n } else {\n listeners.focus[0](navigation => navigation.dispatch(action));\n }\n }, [listeners.focus]);\n const canGoBack = React.useCallback(() => {\n if (listeners.focus[0] == null) {\n return false;\n }\n const {\n result,\n handled\n } = listeners.focus[0](navigation => navigation.canGoBack());\n if (handled) {\n return result;\n } else {\n return false;\n }\n }, [listeners.focus]);\n const resetRoot = React.useCallback(state => {\n var _keyedListeners$getSt, _keyedListeners$getSt2;\n const target = (state === null || state === void 0 ? void 0 : state.key) ?? ((_keyedListeners$getSt = (_keyedListeners$getSt2 = keyedListeners.getState).root) === null || _keyedListeners$getSt === void 0 ? void 0 : _keyedListeners$getSt.call(_keyedListeners$getSt2).key);\n if (target == null) {\n console.error(NOT_INITIALIZED_ERROR);\n } else {\n listeners.focus[0](navigation => navigation.dispatch({\n ...CommonActions.reset(state),\n target\n }));\n }\n }, [keyedListeners.getState, listeners.focus]);\n const getRootState = React.useCallback(() => {\n var _keyedListeners$getSt3, _keyedListeners$getSt4;\n return (_keyedListeners$getSt3 = (_keyedListeners$getSt4 = keyedListeners.getState).root) === null || _keyedListeners$getSt3 === void 0 ? void 0 : _keyedListeners$getSt3.call(_keyedListeners$getSt4);\n }, [keyedListeners.getState]);\n const getCurrentRoute = React.useCallback(() => {\n const state = getRootState();\n if (state == null) {\n return undefined;\n }\n const route = findFocusedRoute(state);\n return route;\n }, [getRootState]);\n const emitter = useEventEmitter();\n const {\n addOptionsGetter,\n getCurrentOptions\n } = useOptionsGetters({});\n const navigation = React.useMemo(() => ({\n ...Object.keys(CommonActions).reduce((acc, name) => {\n acc[name] = function () {\n return (\n // @ts-expect-error: this is ok\n dispatch(CommonActions[name](...arguments))\n );\n };\n return acc;\n }, {}),\n ...emitter.create('root'),\n dispatch,\n resetRoot,\n isFocused: () => true,\n canGoBack,\n getParent: () => undefined,\n getState: () => stateRef.current,\n getRootState,\n getCurrentRoute,\n getCurrentOptions,\n isReady: () => listeners.focus[0] != null\n }), [canGoBack, dispatch, emitter, getCurrentOptions, getCurrentRoute, getRootState, listeners.focus, resetRoot]);\n React.useImperativeHandle(ref, () => navigation, [navigation]);\n const onDispatchAction = React.useCallback((action, noop) => {\n emitter.emit({\n type: '__unsafe_action__',\n data: {\n action,\n noop,\n stack: stackRef.current\n }\n });\n }, [emitter]);\n const lastEmittedOptionsRef = React.useRef();\n const onOptionsChange = React.useCallback(options => {\n if (lastEmittedOptionsRef.current === options) {\n return;\n }\n lastEmittedOptionsRef.current = options;\n emitter.emit({\n type: 'options',\n data: {\n options\n }\n });\n }, [emitter]);\n const stackRef = React.useRef();\n const builderContext = React.useMemo(() => ({\n addListener,\n addKeyedListener,\n onDispatchAction,\n onOptionsChange,\n stackRef\n }), [addListener, addKeyedListener, onDispatchAction, onOptionsChange]);\n const scheduleContext = React.useMemo(() => ({\n scheduleUpdate,\n flushUpdates\n }), [scheduleUpdate, flushUpdates]);\n const isInitialRef = React.useRef(true);\n const getIsInitial = React.useCallback(() => isInitialRef.current, []);\n const context = React.useMemo(() => ({\n state,\n getState,\n setState,\n getKey,\n setKey,\n getIsInitial,\n addOptionsGetter\n }), [state, getState, setState, getKey, setKey, getIsInitial, addOptionsGetter]);\n const onStateChangeRef = React.useRef(onStateChange);\n const stateRef = React.useRef(state);\n React.useEffect(() => {\n isInitialRef.current = false;\n onStateChangeRef.current = onStateChange;\n stateRef.current = state;\n });\n React.useEffect(() => {\n const hydratedState = getRootState();\n if (process.env.NODE_ENV !== 'production') {\n if (hydratedState !== undefined) {\n const serializableResult = checkSerializable(hydratedState);\n if (!serializableResult.serializable) {\n const {\n location,\n reason\n } = serializableResult;\n let path = '';\n let pointer = hydratedState;\n let params = false;\n for (let i = 0; i < location.length; i++) {\n const curr = location[i];\n const prev = location[i - 1];\n pointer = pointer[curr];\n if (!params && curr === 'state') {\n continue;\n } else if (!params && curr === 'routes') {\n if (path) {\n path += ' > ';\n }\n } else if (!params && typeof curr === 'number' && prev === 'routes') {\n var _pointer;\n path += (_pointer = pointer) === null || _pointer === void 0 ? void 0 : _pointer.name;\n } else if (!params) {\n path += ` > ${curr}`;\n params = true;\n } else {\n if (typeof curr === 'number' || /^[0-9]+$/.test(curr)) {\n path += `[${curr}]`;\n } else if (/^[a-z$_]+$/i.test(curr)) {\n path += `.${curr}`;\n } else {\n path += `[${JSON.stringify(curr)}]`;\n }\n }\n }\n const message = `Non-serializable values were found in the navigation state. Check:\\n\\n${path} (${reason})\\n\\nThis can break usage such as persisting and restoring state. This might happen if you passed non-serializable values such as function, class instances etc. in params. If you need to use components with callbacks in your options, you can use 'navigation.setOptions' instead. See https://reactnavigation.org/docs/troubleshooting#i-get-the-warning-non-serializable-values-were-found-in-the-navigation-state for more details.`;\n if (!serializableWarnings.includes(message)) {\n serializableWarnings.push(message);\n console.warn(message);\n }\n }\n const duplicateRouteNamesResult = checkDuplicateRouteNames(hydratedState);\n if (duplicateRouteNamesResult.length) {\n const message = `Found screens with the same name nested inside one another. Check:\\n${duplicateRouteNamesResult.map(locations => `\\n${locations.join(', ')}`)}\\n\\nThis can cause confusing behavior during navigation. Consider using unique names for each screen instead.`;\n if (!duplicateNameWarnings.includes(message)) {\n duplicateNameWarnings.push(message);\n console.warn(message);\n }\n }\n }\n }\n emitter.emit({\n type: 'state',\n data: {\n state\n }\n });\n if (!isFirstMountRef.current && onStateChangeRef.current) {\n onStateChangeRef.current(hydratedState);\n }\n isFirstMountRef.current = false;\n }, [getRootState, emitter, state]);\n const defaultOnUnhandledAction = React.useCallback(action => {\n if (process.env.NODE_ENV === 'production') {\n return;\n }\n const payload = action.payload;\n let message = `The action '${action.type}'${payload ? ` with payload ${JSON.stringify(action.payload)}` : ''} was not handled by any navigator.`;\n switch (action.type) {\n case 'NAVIGATE':\n case 'PUSH':\n case 'REPLACE':\n case 'JUMP_TO':\n if (payload !== null && payload !== void 0 && payload.name) {\n message += `\\n\\nDo you have a screen named '${payload.name}'?\\n\\nIf you're trying to navigate to a screen in a nested navigator, see https://reactnavigation.org/docs/nesting-navigators#navigating-to-a-screen-in-a-nested-navigator.`;\n } else {\n message += `\\n\\nYou need to pass the name of the screen to navigate to.\\n\\nSee https://reactnavigation.org/docs/navigation-actions for usage.`;\n }\n break;\n case 'GO_BACK':\n case 'POP':\n case 'POP_TO_TOP':\n message += `\\n\\nIs there any screen to go back to?`;\n break;\n case 'OPEN_DRAWER':\n case 'CLOSE_DRAWER':\n case 'TOGGLE_DRAWER':\n message += `\\n\\nIs your screen inside a Drawer navigator?`;\n break;\n }\n message += `\\n\\nThis is a development-only warning and won't be shown in production.`;\n console.error(message);\n }, []);\n let element = /*#__PURE__*/React.createElement(NavigationContainerRefContext.Provider, {\n value: navigation\n }, /*#__PURE__*/React.createElement(ScheduleUpdateContext.Provider, {\n value: scheduleContext\n }, /*#__PURE__*/React.createElement(NavigationBuilderContext.Provider, {\n value: builderContext\n }, /*#__PURE__*/React.createElement(NavigationStateContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(UnhandledActionContext.Provider, {\n value: onUnhandledAction ?? defaultOnUnhandledAction\n }, /*#__PURE__*/React.createElement(EnsureSingleNavigator, null, children))))));\n if (independent) {\n // We need to clear any existing contexts for nested independent container to work correctly\n element = /*#__PURE__*/React.createElement(NavigationRouteContext.Provider, {\n value: undefined\n }, /*#__PURE__*/React.createElement(NavigationContext.Provider, {\n value: undefined\n }, element));\n }\n return element;\n});\nexport default BaseNavigationContainer;\n//# sourceMappingURL=BaseNavigationContainer.js.map"]},"metadata":{},"sourceType":"module"} |