{"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"}