UNPKG

26.5 kBSource Map (JSON)View Raw
1{"version":3,"sources":["BaseNavigationContainer.tsx"],"names":["serializableWarnings","duplicateNameWarnings","getPartialState","state","undefined","key","routeNames","partialState","stale","routes","map","route","BaseNavigationContainer","React","forwardRef","ref","initialState","onStateChange","onUnhandledAction","independent","children","parent","useContext","NavigationStateContext","isDefault","Error","getState","setState","scheduleUpdate","flushUpdates","isFirstMountRef","useRef","navigatorKeyRef","getKey","useCallback","current","setKey","listeners","addListener","keyedListeners","addKeyedListener","dispatch","action","focus","console","error","NOT_INITIALIZED_ERROR","navigation","canGoBack","result","handled","resetRoot","target","root","CommonActions","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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","sourcesContent":["import {\n CommonActions,\n InitialState,\n NavigationAction,\n NavigationState,\n ParamListBase,\n PartialState,\n Route,\n} from '@react-navigation/routers';\nimport * as React from 'react';\n\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 type {\n NavigationContainerEventMap,\n NavigationContainerProps,\n NavigationContainerRef,\n} from './types';\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';\n\ntype State = NavigationState | PartialState<NavigationState> | undefined;\n\nconst serializableWarnings: string[] = [];\nconst duplicateNameWarnings: string[] = [];\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 = (\n state: InitialState | undefined\n): PartialState<NavigationState> | undefined => {\n if (state === undefined) {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { key, routeNames, ...partialState } = state;\n\n return {\n ...partialState,\n stale: true,\n routes: state.routes.map((route) => {\n if (route.state === undefined) {\n return route as Route<string> & {\n state?: PartialState<NavigationState>;\n };\n }\n\n return { ...route, state: getPartialState(route.state) };\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 = React.forwardRef(\n function BaseNavigationContainer(\n {\n initialState,\n onStateChange,\n onUnhandledAction,\n independent,\n children,\n }: NavigationContainerProps,\n ref?: React.Ref<NavigationContainerRef<ParamListBase>>\n ) {\n const parent = React.useContext(NavigationStateContext);\n\n if (!parent.isDefault && !independent) {\n throw new Error(\n \"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 }\n\n const [state, getState, setState, scheduleUpdate, flushUpdates] =\n useSyncState<State>(() =>\n getPartialState(initialState == null ? undefined : initialState)\n );\n\n const isFirstMountRef = React.useRef<boolean>(true);\n\n const navigatorKeyRef = React.useRef<string | undefined>();\n\n const getKey = React.useCallback(() => navigatorKeyRef.current, []);\n\n const setKey = React.useCallback((key: string) => {\n navigatorKeyRef.current = key;\n }, []);\n\n const { listeners, addListener } = useChildListeners();\n\n const { keyedListeners, addKeyedListener } = useKeyedChildListeners();\n\n const dispatch = React.useCallback(\n (\n action:\n | NavigationAction\n | ((state: NavigationState) => NavigationAction)\n ) => {\n if (listeners.focus[0] == null) {\n console.error(NOT_INITIALIZED_ERROR);\n } else {\n listeners.focus[0]((navigation) => navigation.dispatch(action));\n }\n },\n [listeners.focus]\n );\n\n const canGoBack = React.useCallback(() => {\n if (listeners.focus[0] == null) {\n return false;\n }\n\n const { result, handled } = listeners.focus[0]((navigation) =>\n navigation.canGoBack()\n );\n\n if (handled) {\n return result;\n } else {\n return false;\n }\n }, [listeners.focus]);\n\n const resetRoot = React.useCallback(\n (state?: PartialState<NavigationState> | NavigationState) => {\n const target = state?.key ?? keyedListeners.getState.root?.().key;\n\n if (target == null) {\n console.error(NOT_INITIALIZED_ERROR);\n } else {\n listeners.focus[0]((navigation) =>\n navigation.dispatch({\n ...CommonActions.reset(state),\n target,\n })\n );\n }\n },\n [keyedListeners.getState, listeners.focus]\n );\n\n const getRootState = React.useCallback(() => {\n return keyedListeners.getState.root?.();\n }, [keyedListeners.getState]);\n\n const getCurrentRoute = React.useCallback(() => {\n const state = getRootState();\n\n if (state == null) {\n return undefined;\n }\n\n const route = findFocusedRoute(state);\n\n return route as Route<string> | undefined;\n }, [getRootState]);\n\n const emitter = useEventEmitter<NavigationContainerEventMap>();\n\n const { addOptionsGetter, getCurrentOptions } = useOptionsGetters({});\n\n const navigation: NavigationContainerRef<ParamListBase> = React.useMemo(\n () => ({\n ...Object.keys(CommonActions).reduce<any>((acc, name) => {\n acc[name] = (...args: any[]) =>\n // @ts-expect-error: this is ok\n dispatch(CommonActions[name](...args));\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 }),\n [\n canGoBack,\n dispatch,\n emitter,\n getCurrentOptions,\n getCurrentRoute,\n getRootState,\n listeners.focus,\n resetRoot,\n ]\n );\n\n React.useImperativeHandle(ref, () => navigation, [navigation]);\n\n const onDispatchAction = React.useCallback(\n (action: NavigationAction, noop: boolean) => {\n emitter.emit({\n type: '__unsafe_action__',\n data: { action, noop, stack: stackRef.current },\n });\n },\n [emitter]\n );\n\n const lastEmittedOptionsRef = React.useRef<object | undefined>();\n\n const onOptionsChange = React.useCallback(\n (options) => {\n if (lastEmittedOptionsRef.current === options) {\n return;\n }\n\n lastEmittedOptionsRef.current = options;\n\n emitter.emit({\n type: 'options',\n data: { options },\n });\n },\n [emitter]\n );\n\n const stackRef = React.useRef<string | undefined>();\n\n const builderContext = React.useMemo(\n () => ({\n addListener,\n addKeyedListener,\n onDispatchAction,\n onOptionsChange,\n stackRef,\n }),\n [addListener, addKeyedListener, onDispatchAction, onOptionsChange]\n );\n\n const scheduleContext = React.useMemo(\n () => ({ scheduleUpdate, flushUpdates }),\n [scheduleUpdate, flushUpdates]\n );\n\n const isInitialRef = React.useRef(true);\n\n const getIsInitial = React.useCallback(() => isInitialRef.current, []);\n\n const context = React.useMemo(\n () => ({\n state,\n getState,\n setState,\n getKey,\n setKey,\n getIsInitial,\n addOptionsGetter,\n }),\n [\n state,\n getState,\n setState,\n getKey,\n setKey,\n getIsInitial,\n addOptionsGetter,\n ]\n );\n\n const onStateChangeRef = React.useRef(onStateChange);\n const stateRef = React.useRef(state);\n\n React.useEffect(() => {\n isInitialRef.current = false;\n onStateChangeRef.current = onStateChange;\n stateRef.current = state;\n });\n\n React.useEffect(() => {\n const hydratedState = getRootState();\n\n if (process.env.NODE_ENV !== 'production') {\n if (hydratedState !== undefined) {\n const serializableResult = checkSerializable(hydratedState);\n\n if (!serializableResult.serializable) {\n const { location, reason } = serializableResult;\n\n let path = '';\n let pointer: Record<any, any> = hydratedState;\n let params = false;\n\n for (let i = 0; i < location.length; i++) {\n const curr = location[i];\n const prev = location[i - 1];\n\n pointer = pointer[curr];\n\n if (!params && curr === 'state') {\n continue;\n } else if (!params && curr === 'routes') {\n if (path) {\n path += ' > ';\n }\n } else if (\n !params &&\n typeof curr === 'number' &&\n prev === 'routes'\n ) {\n path += 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\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\n if (!serializableWarnings.includes(message)) {\n serializableWarnings.push(message);\n console.warn(message);\n }\n }\n\n const duplicateRouteNamesResult =\n checkDuplicateRouteNames(hydratedState);\n\n if (duplicateRouteNamesResult.length) {\n const message = `Found screens with the same name nested inside one another. Check:\\n${duplicateRouteNamesResult.map(\n (locations) => `\\n${locations.join(', ')}`\n )}\\n\\nThis can cause confusing behavior during navigation. Consider using unique names for each screen instead.`;\n\n if (!duplicateNameWarnings.includes(message)) {\n duplicateNameWarnings.push(message);\n console.warn(message);\n }\n }\n }\n }\n\n emitter.emit({ type: 'state', data: { state } });\n\n if (!isFirstMountRef.current && onStateChangeRef.current) {\n onStateChangeRef.current(hydratedState);\n }\n\n isFirstMountRef.current = false;\n }, [getRootState, emitter, state]);\n\n const defaultOnUnhandledAction = React.useCallback(\n (action: NavigationAction) => {\n if (process.env.NODE_ENV === 'production') {\n return;\n }\n\n const payload: Record<string, any> | undefined = action.payload;\n\n let message = `The action '${action.type}'${\n payload ? ` with payload ${JSON.stringify(action.payload)}` : ''\n } was not handled by any navigator.`;\n\n switch (action.type) {\n case 'NAVIGATE':\n case 'PUSH':\n case 'REPLACE':\n case 'JUMP_TO':\n if (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\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\n message += `\\n\\nThis is a development-only warning and won't be shown in production.`;\n\n console.error(message);\n },\n []\n );\n\n let element = (\n <NavigationContainerRefContext.Provider value={navigation}>\n <ScheduleUpdateContext.Provider value={scheduleContext}>\n <NavigationBuilderContext.Provider value={builderContext}>\n <NavigationStateContext.Provider value={context}>\n <UnhandledActionContext.Provider\n value={onUnhandledAction ?? defaultOnUnhandledAction}\n >\n <EnsureSingleNavigator>{children}</EnsureSingleNavigator>\n </UnhandledActionContext.Provider>\n </NavigationStateContext.Provider>\n </NavigationBuilderContext.Provider>\n </ScheduleUpdateContext.Provider>\n </NavigationContainerRefContext.Provider>\n );\n\n if (independent) {\n // We need to clear any existing contexts for nested independent container to work correctly\n element = (\n <NavigationRouteContext.Provider value={undefined}>\n <NavigationContext.Provider value={undefined}>\n {element}\n </NavigationContext.Provider>\n </NavigationRouteContext.Provider>\n );\n }\n\n return element;\n }\n);\n\nexport default BaseNavigationContainer;\n"]}
\No newline at end of file