UNPKG

6.79 kBSource Map (JSON)View Raw
1{"version":3,"sources":["createStackNavigator.tsx"],"names":["createNavigatorFactory","StackActions","StackRouter","useNavigationBuilder","React","warnOnce","StackView","StackNavigator","id","initialRouteName","children","screenListeners","screenOptions","rest","mode","headerMode","keyboardHandlingEnabled","undefined","defaultScreenOptions","presentation","headerShown","state","descriptors","navigation","NavigationContent","useEffect","addListener","e","isFocused","requestAnimationFrame","index","defaultPrevented","dispatch","popToTop","target","key"],"mappings":";;AAAA,SACEA,sBADF,EAMEC,YANF,EAQEC,WARF,EAUEC,oBAVF,QAWO,0BAXP;AAYA,OAAO,KAAKC,KAAZ,MAAuB,OAAvB;AACA,OAAOC,QAAP,MAAqB,WAArB;AAQA,OAAOC,SAAP,MAAsB,0BAAtB;;AAWA,SAASC,cAAT,OAOU;AAAA,MAPc;AACtBC,IAAAA,EADsB;AAEtBC,IAAAA,gBAFsB;AAGtBC,IAAAA,QAHsB;AAItBC,IAAAA,eAJsB;AAKtBC,IAAAA,aALsB;AAMtB,OAAGC;AANmB,GAOd;AACR;AACA,QAAMC,IAAI,GAAGD,IAAI,CAACC,IAAlB;AAEAT,EAAAA,QAAQ,CACNS,IAAI,IAAI,IADF,EAEL,2BAA0BA,IAAK,yCAAwCA,IAAK,uHAFvE,CAAR,CAJQ,CASR;;AACA,QAAMC,UAAU,GAAGF,IAAI,CAACE,UAAxB;AAEAV,EAAAA,QAAQ,CACNU,UAAU,KAAK,MADT,EAEL,iMAFK,CAAR;AAKAV,EAAAA,QAAQ,CACNU,UAAU,IAAI,IAAd,IAAsBA,UAAU,KAAK,MAD/B,EAEL,kMAFK,CAAR,CAjBQ,CAsBR;;AACA,QAAMC,uBAAuB,GAAGH,IAAI,CAACG,uBAArC;AAEAX,EAAAA,QAAQ,CACNW,uBAAuB,KAAKC,SADtB,EAEL,4NAFK,CAAR;AAKA,QAAMC,oBAA4C,GAAG;AACnDC,IAAAA,YAAY,EAAEL,IADqC;AAEnDM,IAAAA,WAAW,EAAEL,UAAU,GAAGA,UAAU,KAAK,MAAlB,GAA2B,IAFC;AAGnDA,IAAAA,UAAU,EAAEA,UAAU,IAAIA,UAAU,KAAK,MAA7B,GAAsCA,UAAtC,GAAmDE,SAHZ;AAInDD,IAAAA;AAJmD,GAArD;AAOA,QAAM;AAAEK,IAAAA,KAAF;AAASC,IAAAA,WAAT;AAAsBC,IAAAA,UAAtB;AAAkCC,IAAAA;AAAlC,MACJrB,oBAAoB,CAMlBD,WANkB,EAML;AACbM,IAAAA,EADa;AAEbC,IAAAA,gBAFa;AAGbC,IAAAA,QAHa;AAIbC,IAAAA,eAJa;AAKbC,IAAAA,aALa;AAMbM,IAAAA;AANa,GANK,CADtB;AAgBAd,EAAAA,KAAK,CAACqB,SAAN,CACE;AAAA;;AAAA,WACE;AADF,+BAEEF,UAAU,CAACG,WAFb,0DAEE,2BAAAH,UAAU,EAAe,UAAf,EAA4BI,CAAD,IAAO;AAC1C,cAAMC,SAAS,GAAGL,UAAU,CAACK,SAAX,EAAlB,CAD0C,CAG1C;AACA;;AACAC,QAAAA,qBAAqB,CAAC,MAAM;AAC1B,cACER,KAAK,CAACS,KAAN,GAAc,CAAd,IACAF,SADA,IAEA,CAAED,CAAD,CAA6CI,gBAHhD,EAIE;AACA;AACA;AACAR,YAAAA,UAAU,CAACS,QAAX,CAAoB,EAClB,GAAG/B,YAAY,CAACgC,QAAb,EADe;AAElBC,cAAAA,MAAM,EAAEb,KAAK,CAACc;AAFI,aAApB;AAID;AACF,SAboB,CAArB;AAcD,OAnBS;AAFZ;AAAA,GADF,EAuBE,CAACZ,UAAD,EAAaF,KAAK,CAACS,KAAnB,EAA0BT,KAAK,CAACc,GAAhC,CAvBF;AA0BA,sBACE,oBAAC,iBAAD,qBACE,oBAAC,SAAD,eACMtB,IADN;AAEE,IAAA,KAAK,EAAEQ,KAFT;AAGE,IAAA,WAAW,EAAEC,WAHf;AAIE,IAAA,UAAU,EAAEC;AAJd,KADF,CADF;AAUD;;AAED,eAAevB,sBAAsB,CAKnCO,cALmC,CAArC","sourcesContent":["import {\n createNavigatorFactory,\n DefaultNavigatorOptions,\n EventArg,\n ParamListBase,\n StackActionHelpers,\n StackActions,\n StackNavigationState,\n StackRouter,\n StackRouterOptions,\n useNavigationBuilder,\n} from '@react-navigation/native';\nimport * as React from 'react';\nimport warnOnce from 'warn-once';\n\nimport type {\n StackHeaderMode,\n StackNavigationConfig,\n StackNavigationEventMap,\n StackNavigationOptions,\n} from '../types';\nimport StackView from '../views/Stack/StackView';\n\ntype Props = DefaultNavigatorOptions<\n ParamListBase,\n StackNavigationState<ParamListBase>,\n StackNavigationOptions,\n StackNavigationEventMap\n> &\n StackRouterOptions &\n StackNavigationConfig;\n\nfunction StackNavigator({\n id,\n initialRouteName,\n children,\n screenListeners,\n screenOptions,\n ...rest\n}: Props) {\n // @ts-expect-error: mode is deprecated\n const mode = rest.mode as 'card' | 'modal' | undefined;\n\n warnOnce(\n mode != null,\n `Stack Navigator: 'mode=\"${mode}\"' is deprecated. Use 'presentation: \"${mode}\"' in 'screenOptions' instead.\\n\\nSee https://reactnavigation.org/docs/stack-navigator#presentation for more details.`\n );\n\n // @ts-expect-error: headerMode='none' is deprecated\n const headerMode = rest.headerMode as StackHeaderMode | 'none' | undefined;\n\n warnOnce(\n headerMode === 'none',\n `Stack Navigator: 'headerMode=\"none\"' is deprecated. Use 'headerShown: false' in 'screenOptions' instead.\\n\\nSee https://reactnavigation.org/docs/stack-navigator/#headershown for more details.`\n );\n\n warnOnce(\n headerMode != null && headerMode !== 'none',\n `Stack Navigator: 'headerMode' is moved to 'options'. Moved it to 'screenOptions' to keep current behavior.\\n\\nSee https://reactnavigation.org/docs/stack-navigator/#headermode for more details.`\n );\n\n // @ts-expect-error: headerMode='none' is deprecated\n const keyboardHandlingEnabled = rest.keyboardHandlingEnabled;\n\n warnOnce(\n keyboardHandlingEnabled !== undefined,\n `Stack Navigator: 'keyboardHandlingEnabled' is moved to 'options'. Moved it to 'screenOptions' to keep current behavior.\\n\\nSee https://reactnavigation.org/docs/stack-navigator/#keyboardhandlingenabled for more details.`\n );\n\n const defaultScreenOptions: StackNavigationOptions = {\n presentation: mode,\n headerShown: headerMode ? headerMode !== 'none' : true,\n headerMode: headerMode && headerMode !== 'none' ? headerMode : undefined,\n keyboardHandlingEnabled,\n };\n\n const { state, descriptors, navigation, NavigationContent } =\n useNavigationBuilder<\n StackNavigationState<ParamListBase>,\n StackRouterOptions,\n StackActionHelpers<ParamListBase>,\n StackNavigationOptions,\n StackNavigationEventMap\n >(StackRouter, {\n id,\n initialRouteName,\n children,\n screenListeners,\n screenOptions,\n defaultScreenOptions,\n });\n\n React.useEffect(\n () =>\n // @ts-expect-error: there may not be a tab navigator in parent\n navigation.addListener?.('tabPress', (e) => {\n const isFocused = navigation.isFocused();\n\n // Run the operation in the next frame so we're sure all listeners have been run\n // This is necessary to know if preventDefault() has been called\n requestAnimationFrame(() => {\n if (\n state.index > 0 &&\n isFocused &&\n !(e as unknown as EventArg<'tabPress', true>).defaultPrevented\n ) {\n // When user taps on already focused tab and we're inside the tab,\n // reset the stack to replicate native behaviour\n navigation.dispatch({\n ...StackActions.popToTop(),\n target: state.key,\n });\n }\n });\n }),\n [navigation, state.index, state.key]\n );\n\n return (\n <NavigationContent>\n <StackView\n {...rest}\n state={state}\n descriptors={descriptors}\n navigation={navigation}\n />\n </NavigationContent>\n );\n}\n\nexport default createNavigatorFactory<\n StackNavigationState<ParamListBase>,\n StackNavigationOptions,\n StackNavigationEventMap,\n typeof StackNavigator\n>(StackNavigator);\n"]}
\No newline at end of file