diff --git a/package-lock.json b/package-lock.json index cf9978bae510..41194766470c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -37,6 +37,7 @@ "@react-native-picker/picker": "2.7.6", "@react-navigation/material-top-tabs": "^6.6.3", "@react-navigation/native": "6.1.12", + "@react-navigation/native-stack": "^6.9.26", "@react-navigation/stack": "6.3.29", "@react-ng/bounds-observer": "^0.2.1", "@rnmapbox/maps": "10.1.30", @@ -10418,6 +10419,17 @@ "react": "*" } }, + "node_modules/@react-navigation/elements": { + "version": "1.3.31", + "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.31.tgz", + "integrity": "sha512-bUzP4Awlljx5RKEExw8WYtif8EuQni2glDaieYROKTnaxsu9kEIA515sXQgUDZU4Ob12VoL7+z70uO3qrlfXcQ==", + "peerDependencies": { + "@react-navigation/native": "^6.0.0", + "react": "*", + "react-native": "*", + "react-native-safe-area-context": ">= 3.0.0" + } + }, "node_modules/@react-navigation/material-top-tabs": { "version": "6.6.3", "license": "MIT", @@ -10447,6 +10459,22 @@ "react-native": "*" } }, + "node_modules/@react-navigation/native-stack": { + "version": "6.9.26", + "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-6.9.26.tgz", + "integrity": "sha512-++dueQ+FDj2XkZ902DVrK79ub1vp19nSdAZWxKRgd6+Bc0Niiesua6rMCqymYOVaYh+dagwkA9r00bpt/U5WLw==", + "dependencies": { + "@react-navigation/elements": "^1.3.30", + "warn-once": "^0.1.0" + }, + "peerDependencies": { + "@react-navigation/native": "^6.0.0", + "react": "*", + "react-native": "*", + "react-native-safe-area-context": ">= 3.0.0", + "react-native-screens": ">= 3.0.0" + } + }, "node_modules/@react-navigation/routers": { "version": "6.1.9", "license": "MIT", @@ -10471,16 +10499,6 @@ "react-native-screens": ">= 3.0.0" } }, - "node_modules/@react-navigation/stack/node_modules/@react-navigation/elements": { - "version": "1.3.30", - "license": "MIT", - "peerDependencies": { - "@react-navigation/native": "^6.0.0", - "react": "*", - "react-native": "*", - "react-native-safe-area-context": ">= 3.0.0" - } - }, "node_modules/@react-ng/bounds-observer": { "version": "0.2.1", "license": "Apache-2.0", diff --git a/package.json b/package.json index baf05e92111b..53c6e95eca79 100644 --- a/package.json +++ b/package.json @@ -92,6 +92,7 @@ "@react-native-picker/picker": "2.7.6", "@react-navigation/material-top-tabs": "^6.6.3", "@react-navigation/native": "6.1.12", + "@react-navigation/native-stack": "^6.9.26", "@react-navigation/stack": "6.3.29", "@react-ng/bounds-observer": "^0.2.1", "@rnmapbox/maps": "10.1.30", diff --git a/patches/@react-navigation+core+6.4.11+002+platform-navigation-stack-types.patch b/patches/@react-navigation+core+6.4.11+002+platform-navigation-stack-types.patch new file mode 100644 index 000000000000..8e20103875ae --- /dev/null +++ b/patches/@react-navigation+core+6.4.11+002+platform-navigation-stack-types.patch @@ -0,0 +1,1448 @@ +diff --git a/node_modules/@react-navigation/core/lib/commonjs/index.js b/node_modules/@react-navigation/core/lib/commonjs/index.js +index d1ea4eb..4b0a660 100644 +--- a/node_modules/@react-navigation/core/lib/commonjs/index.js ++++ b/node_modules/@react-navigation/core/lib/commonjs/index.js +@@ -22,6 +22,7 @@ var _exportNames = { + useFocusEffect: true, + useIsFocused: true, + useNavigation: true, ++ NavigationBuilderOptions: true, + useNavigationBuilder: true, + useNavigationContainerRef: true, + useNavigationState: true, +@@ -42,6 +43,12 @@ Object.defineProperty(exports, "CurrentRenderContext", { + return _CurrentRenderContext.default; + } + }); ++Object.defineProperty(exports, "NavigationBuilderOptions", { ++ enumerable: true, ++ get: function () { ++ return _useNavigationBuilder.NavigationBuilderOptions; ++ } ++}); + Object.defineProperty(exports, "NavigationContainerRefContext", { + enumerable: true, + get: function () { +@@ -210,7 +217,7 @@ Object.keys(_types).forEach(function (key) { + var _useFocusEffect = _interopRequireDefault(require("./useFocusEffect")); + var _useIsFocused = _interopRequireDefault(require("./useIsFocused")); + var _useNavigation = _interopRequireDefault(require("./useNavigation")); +-var _useNavigationBuilder = _interopRequireDefault(require("./useNavigationBuilder")); ++var _useNavigationBuilder = _interopRequireWildcard(require("./useNavigationBuilder")); + var _useNavigationContainerRef = _interopRequireDefault(require("./useNavigationContainerRef")); + var _useNavigationState = _interopRequireDefault(require("./useNavigationState")); + var _usePreventRemove = _interopRequireDefault(require("./usePreventRemove")); +@@ -229,5 +236,7 @@ Object.keys(_routers).forEach(function (key) { + } + }); + }); ++function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } ++function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + //# sourceMappingURL=index.js.map +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/commonjs/index.js.map b/node_modules/@react-navigation/core/lib/commonjs/index.js.map +index f531070..f6131d3 100644 +--- a/node_modules/@react-navigation/core/lib/commonjs/index.js.map ++++ b/node_modules/@react-navigation/core/lib/commonjs/index.js.map +@@ -1 +1 @@ +-{"version":3,"names":[],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AAA0C"} +\ No newline at end of file ++{"version":3,"names":[],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AAA0C;AAAA;AAAA"} +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/commonjs/types.js.map b/node_modules/@react-navigation/core/lib/commonjs/types.js.map +index a3da390..bca9dc0 100644 +--- a/node_modules/@react-navigation/core/lib/commonjs/types.js.map ++++ b/node_modules/@react-navigation/core/lib/commonjs/types.js.map +@@ -1 +1 @@ +-{"version":3,"names":["PrivateValueStore"],"sourceRoot":"../../src","sources":["types.tsx"],"mappings":";;;;;;AAoJO,MAAMA,iBAAiB,CAA4B;AAYzD"} +\ No newline at end of file ++{"version":3,"names":["PrivateValueStore"],"sourceRoot":"../../src","sources":["types.tsx"],"mappings":";;;;;;AAmLO,MAAMA,iBAAiB,CAA4B;AAYzD"} +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/commonjs/useDescriptors.js b/node_modules/@react-navigation/core/lib/commonjs/useDescriptors.js +index 778981c..87fa958 100644 +--- a/node_modules/@react-navigation/core/lib/commonjs/useDescriptors.js ++++ b/node_modules/@react-navigation/core/lib/commonjs/useDescriptors.js +@@ -21,8 +21,10 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && + * - Helper method to render a screen + * - Options specified by the screen for the navigator + * - Navigation object intended for the route ++ * @param convertCustomScreenOptions Function to convert custom screen options to screen options. ++ * If passed, it means that the `options`/`screenOptions` passed to the navigator are custom and need to be converted to regular screen options. + */ +-function useDescriptors(_ref) { ++function useDescriptors(_ref, convertCustomScreenOptions) { + let { + state, + screens, +@@ -67,29 +69,45 @@ function useDescriptors(_ref) { + const config = screens[route.name]; + const screen = config.props; + const navigation = navigations[route.key]; +- const optionsList = [ +- // The default `screenOptions` passed to the navigator +- screenOptions, +- // The `screenOptions` props passed to `Group` elements +- ...(config.options ? config.options.filter(Boolean) : []), +- // The `options` prop passed to `Screen` elements, +- screen.options, +- // The options set via `navigation.setOptions` +- options[route.key]]; ++ let optionsList; ++ if (convertCustomScreenOptions) { ++ optionsList = [ ++ // The default `screenOptions` passed to the navigator ++ convertCustomScreenOptions(screenOptions), ++ // The `screenOptions` props passed to `Group` elements ++ ...(config.options ? config.options.filter(Boolean).map(convertCustomScreenOptions) : []), ++ // The `options` prop passed to `Screen` elements, ++ convertCustomScreenOptions(screen.options), ++ // The options set via `navigation.setOptions` ++ convertCustomScreenOptions(options[route.key])]; ++ } else { ++ optionsList = [ ++ // The default `screenOptions` passed to the navigator ++ screenOptions, ++ // The `screenOptions` props passed to `Group` elements ++ ...(config.options ? config.options.filter(Boolean) : []), ++ // The `options` prop passed to `Screen` elements, ++ screen.options, ++ // The options set via `navigation.setOptions` ++ options[route.key]]; ++ } + const customOptions = optionsList.reduce((acc, curr) => Object.assign(acc, + // @ts-expect-error: we check for function but TS still complains + typeof curr !== 'function' ? curr : curr({ + route, + navigation + })), {}); ++ const customDefaultScreenOptions = (convertCustomScreenOptions === null || convertCustomScreenOptions === void 0 ? void 0 : convertCustomScreenOptions(defaultScreenOptions)) ?? defaultScreenOptions; + const mergedOptions = { + ...(typeof defaultScreenOptions === 'function' ? ++ // In Expensify's PlatformStackNavigation we don't allow a callback function for `defaultScreenOptions`, ++ // therefore we don't need to convert any custom default options when it's a function. + // @ts-expect-error: ts gives incorrect error here + defaultScreenOptions({ + route, + navigation, + options: customOptions +- }) : defaultScreenOptions), ++ }) : customDefaultScreenOptions), + ...customOptions + }; + const clearOptions = () => setOptions(o => { +diff --git a/node_modules/@react-navigation/core/lib/commonjs/useDescriptors.js.map b/node_modules/@react-navigation/core/lib/commonjs/useDescriptors.js.map +index d2248a2..33f2f63 100644 +--- a/node_modules/@react-navigation/core/lib/commonjs/useDescriptors.js.map ++++ b/node_modules/@react-navigation/core/lib/commonjs/useDescriptors.js.map +@@ -1 +1 @@ +-{"version":3,"names":["useDescriptors","state","screens","navigation","screenOptions","defaultScreenOptions","onAction","getState","setState","addListener","addKeyedListener","onRouteFocus","router","emitter","options","setOptions","React","useState","onDispatchAction","onOptionsChange","stackRef","useContext","NavigationBuilderContext","context","useMemo","navigations","useNavigationCache","routes","useRouteCache","reduce","acc","route","i","config","name","screen","props","key","optionsList","filter","Boolean","customOptions","curr","Object","assign","mergedOptions","clearOptions","o","_","rest","render"],"sourceRoot":"../../src","sources":["useDescriptors.tsx"],"mappings":"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"} +\ No newline at end of file ++{"version":3,"names":["useDescriptors","convertCustomScreenOptions","state","screens","navigation","screenOptions","defaultScreenOptions","onAction","getState","setState","addListener","addKeyedListener","onRouteFocus","router","emitter","options","setOptions","React","useState","onDispatchAction","onOptionsChange","stackRef","useContext","NavigationBuilderContext","context","useMemo","navigations","useNavigationCache","routes","useRouteCache","reduce","acc","route","i","config","name","screen","props","key","optionsList","filter","Boolean","map","customOptions","curr","Object","assign","customDefaultScreenOptions","mergedOptions","clearOptions","o","_","rest","render"],"sourceRoot":"../../src","sources":["useDescriptors.tsx"],"mappings":"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"} +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/commonjs/useNavigationBuilder.js b/node_modules/@react-navigation/core/lib/commonjs/useNavigationBuilder.js +index 14338b9..70564a7 100644 +--- a/node_modules/@react-navigation/core/lib/commonjs/useNavigationBuilder.js ++++ b/node_modules/@react-navigation/core/lib/commonjs/useNavigationBuilder.js +@@ -127,9 +127,11 @@ const getRouteConfigsFromChildren = (children, groupKey, groupOptions) => { + * + * @param createRouter Factory method which returns router object. + * @param options Options object containing `children` and additional options for the router. ++ * @param convertCustomScreenOptions Function to convert custom screen options to screen options. ++ * If passed, it means that the `options`/`screenOptions` passed to the navigator are custom and need to be converted to regular screen options. + * @returns An object containing `state`, `navigation`, `descriptors` objects. + */ +-function useNavigationBuilder(createRouter, options) { ++function useNavigationBuilder(createRouter, options, convertCustomScreenOptions) { + const navigatorKey = (0, _useRegisterNavigator.default)(); + const route = React.useContext(_NavigationRouteContext.default); + const { +@@ -182,10 +184,6 @@ function useNavigationBuilder(createRouter, options) { + getIsInitial + } = React.useContext(_NavigationStateContext.default); + const stateCleanedUp = React.useRef(false); +- const cleanUpState = React.useCallback(() => { +- setCurrentState(undefined); +- stateCleanedUp.current = true; +- }, [setCurrentState]); + const setState = React.useCallback(state => { + if (stateCleanedUp.current) { + // State might have been already cleaned up due to unmount +@@ -299,6 +297,9 @@ function useNavigationBuilder(createRouter, options) { + // So we override the state object we return to use the latest state as soon as possible + state = nextState; + React.useEffect(() => { ++ // In strict mode, React will double-invoke effects. ++ // So we need to reset the flag if component was not unmounted ++ stateCleanedUp.current = false; + setKey(navigatorKey); + if (!getIsInitial()) { + // If it's not initial render, we need to update the state +@@ -308,14 +309,10 @@ function useNavigationBuilder(createRouter, options) { + } + return () => { + // We need to clean up state for this navigator on unmount +- // We do it in a timeout because we need to detect if another navigator mounted in the meantime +- // For example, if another navigator has started rendering, we should skip cleanup +- // Otherwise, our cleanup step will cleanup state for the other navigator and re-initialize it +- setTimeout(() => { +- if (getCurrentState() !== undefined && getKey() === navigatorKey) { +- cleanUpState(); +- } +- }, 0); ++ if (getCurrentState() !== undefined && getKey() === navigatorKey) { ++ setCurrentState(undefined); ++ stateCleanedUp.current = true; ++ } + }; + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); +@@ -438,7 +435,7 @@ function useNavigationBuilder(createRouter, options) { + router, + // @ts-expect-error: this should have both core and custom events, but too much work right now + emitter +- }); ++ }, convertCustomScreenOptions); + (0, _useCurrentRender.default)({ + state, + navigation, +diff --git a/node_modules/@react-navigation/core/lib/commonjs/useNavigationBuilder.js.map b/node_modules/@react-navigation/core/lib/commonjs/useNavigationBuilder.js.map +index 55b77ca..564a9dc 100644 +--- a/node_modules/@react-navigation/core/lib/commonjs/useNavigationBuilder.js.map ++++ b/node_modules/@react-navigation/core/lib/commonjs/useNavigationBuilder.js.map +@@ -1 +1 @@ +-{"version":3,"names":["PrivateValueStore","isValidKey","key","undefined","getRouteConfigsFromChildren","children","groupKey","groupOptions","configs","React","Children","toArray","reduce","acc","child","isValidElement","type","Screen","props","navigationKey","Error","JSON","stringify","name","push","keys","options","Fragment","Group","screenOptions","String","process","env","NODE_ENV","forEach","config","component","getComponent","isValidElementType","console","warn","test","useNavigationBuilder","createRouter","navigatorKey","useRegisterNavigator","route","useContext","NavigationRouteContext","screenListeners","rest","current","router","useRef","params","state","initial","screen","initialRouteName","routeConfigs","screens","routeNames","map","routeKeyList","curr","join","routeParamList","initialParams","routeGetIdList","Object","assign","getId","length","isStateValid","useCallback","isStateInitialized","stale","currentState","getState","getCurrentState","setState","setCurrentState","setKey","getKey","getIsInitial","NavigationStateContext","stateCleanedUp","cleanUpState","initializedState","isFirstStateInitialization","useMemo","initialRouteParamList","initialParamsFromParams","getInitialState","getRehydratedState","previousRouteKeyListRef","useEffect","previousRouteKeyList","nextState","isArrayEqual","isRecordEqual","getStateForRouteNamesChange","routeKeyChanges","filter","hasOwnProperty","previousNestedParamsRef","previousParams","action","CommonActions","reset","navigate","path","updatedState","getStateForAction","shouldUpdate","useScheduleUpdate","setTimeout","initializedStateRef","emitter","useEventEmitter","e","target","routes","find","index","navigation","descriptors","listeners","concat","cb","i","self","lastIndexOf","listener","useFocusEvents","emit","data","childListeners","addListener","useChildListeners","keyedListeners","addKeyedListener","useKeyedChildListeners","onAction","useOnAction","actionListeners","beforeRemoveListeners","beforeRemove","routerConfigOptions","onRouteFocus","useOnRouteFocus","useNavigationHelpers","id","useFocusedListenersChildrenAdapter","focusedListeners","focus","useOnGetState","getStateListeners","useDescriptors","defaultScreenOptions","useCurrentRender","NavigationContent","useComponent"],"sourceRoot":"../../src","sources":["useNavigationBuilder.tsx"],"mappings":"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"} +\ No newline at end of file ++{"version":3,"names":["PrivateValueStore","isValidKey","key","undefined","getRouteConfigsFromChildren","children","groupKey","groupOptions","configs","React","Children","toArray","reduce","acc","child","isValidElement","type","Screen","props","navigationKey","Error","JSON","stringify","name","push","keys","options","Fragment","Group","screenOptions","String","process","env","NODE_ENV","forEach","config","component","getComponent","isValidElementType","console","warn","test","useNavigationBuilder","createRouter","convertCustomScreenOptions","navigatorKey","useRegisterNavigator","route","useContext","NavigationRouteContext","screenListeners","rest","current","router","useRef","params","state","initial","screen","initialRouteName","routeConfigs","screens","routeNames","map","routeKeyList","curr","join","routeParamList","initialParams","routeGetIdList","Object","assign","getId","length","isStateValid","useCallback","isStateInitialized","stale","currentState","getState","getCurrentState","setState","setCurrentState","setKey","getKey","getIsInitial","NavigationStateContext","stateCleanedUp","initializedState","isFirstStateInitialization","useMemo","initialRouteParamList","initialParamsFromParams","getInitialState","getRehydratedState","previousRouteKeyListRef","useEffect","previousRouteKeyList","nextState","isArrayEqual","isRecordEqual","getStateForRouteNamesChange","routeKeyChanges","filter","hasOwnProperty","previousNestedParamsRef","previousParams","action","CommonActions","reset","navigate","path","updatedState","getStateForAction","shouldUpdate","useScheduleUpdate","initializedStateRef","emitter","useEventEmitter","e","target","routes","find","index","navigation","descriptors","listeners","concat","cb","i","self","lastIndexOf","listener","useFocusEvents","emit","data","childListeners","addListener","useChildListeners","keyedListeners","addKeyedListener","useKeyedChildListeners","onAction","useOnAction","actionListeners","beforeRemoveListeners","beforeRemove","routerConfigOptions","onRouteFocus","useOnRouteFocus","useNavigationHelpers","id","useFocusedListenersChildrenAdapter","focusedListeners","focus","useOnGetState","getStateListeners","useDescriptors","defaultScreenOptions","useCurrentRender","NavigationContent","useComponent"],"sourceRoot":"../../src","sources":["useNavigationBuilder.tsx"],"mappings":"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"} +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/module/index.js b/node_modules/@react-navigation/core/lib/module/index.js +index 1d42c3a..06f6bde 100644 +--- a/node_modules/@react-navigation/core/lib/module/index.js ++++ b/node_modules/@react-navigation/core/lib/module/index.js +@@ -17,7 +17,7 @@ export * from './types'; + export { default as useFocusEffect } from './useFocusEffect'; + export { default as useIsFocused } from './useIsFocused'; + export { default as useNavigation } from './useNavigation'; +-export { default as useNavigationBuilder } from './useNavigationBuilder'; ++export { NavigationBuilderOptions, default as useNavigationBuilder } from './useNavigationBuilder'; + export { default as useNavigationContainerRef } from './useNavigationContainerRef'; + export { default as useNavigationState } from './useNavigationState'; + export { default as UNSTABLE_usePreventRemove } from './usePreventRemove'; +diff --git a/node_modules/@react-navigation/core/lib/module/index.js.map b/node_modules/@react-navigation/core/lib/module/index.js.map +index ed01400..32855ca 100644 +--- a/node_modules/@react-navigation/core/lib/module/index.js.map ++++ b/node_modules/@react-navigation/core/lib/module/index.js.map +@@ -1 +1 @@ +-{"version":3,"names":["default","BaseNavigationContainer","createNavigationContainerRef","createNavigatorFactory","CurrentRenderContext","findFocusedRoute","getActionFromState","getFocusedRouteNameFromRoute","getPathFromState","getStateFromPath","NavigationContainerRefContext","NavigationContext","NavigationHelpersContext","NavigationRouteContext","PreventRemoveContext","PreventRemoveProvider","useFocusEffect","useIsFocused","useNavigation","useNavigationBuilder","useNavigationContainerRef","useNavigationState","UNSTABLE_usePreventRemove","usePreventRemoveContext","useRoute","validatePathConfig"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,SAASA,OAAO,IAAIC,uBAAuB,QAAQ,2BAA2B;AAC9E,SAASD,OAAO,IAAIE,4BAA4B,QAAQ,gCAAgC;AACxF,SAASF,OAAO,IAAIG,sBAAsB,QAAQ,0BAA0B;AAC5E,SAASH,OAAO,IAAII,oBAAoB,QAAQ,wBAAwB;AACxE,SAASJ,OAAO,IAAIK,gBAAgB,QAAQ,oBAAoB;AAChE,SAASL,OAAO,IAAIM,kBAAkB,QAAQ,sBAAsB;AACpE,SAASN,OAAO,IAAIO,4BAA4B,QAAQ,gCAAgC;AACxF,SAASP,OAAO,IAAIQ,gBAAgB,QAAQ,oBAAoB;AAChE,SAASR,OAAO,IAAIS,gBAAgB,QAAQ,oBAAoB;AAChE,SAAST,OAAO,IAAIU,6BAA6B,QAAQ,iCAAiC;AAC1F,SAASV,OAAO,IAAIW,iBAAiB,QAAQ,qBAAqB;AAClE,SAASX,OAAO,IAAIY,wBAAwB,QAAQ,4BAA4B;AAChF,SAASZ,OAAO,IAAIa,sBAAsB,QAAQ,0BAA0B;AAC5E,SAASb,OAAO,IAAIc,oBAAoB,QAAQ,wBAAwB;AACxE,SAASd,OAAO,IAAIe,qBAAqB,QAAQ,yBAAyB;AAC1E,cAAc,SAAS;AACvB,SAASf,OAAO,IAAIgB,cAAc,QAAQ,kBAAkB;AAC5D,SAAShB,OAAO,IAAIiB,YAAY,QAAQ,gBAAgB;AACxD,SAASjB,OAAO,IAAIkB,aAAa,QAAQ,iBAAiB;AAC1D,SAASlB,OAAO,IAAImB,oBAAoB,QAAQ,wBAAwB;AACxE,SAASnB,OAAO,IAAIoB,yBAAyB,QAAQ,6BAA6B;AAClF,SAASpB,OAAO,IAAIqB,kBAAkB,QAAQ,sBAAsB;AACpE,SAASrB,OAAO,IAAIsB,yBAAyB,QAAQ,oBAAoB;AACzE,SAAStB,OAAO,IAAIuB,uBAAuB,QAAQ,2BAA2B;AAC9E,SAASvB,OAAO,IAAIwB,QAAQ,QAAQ,YAAY;AAChD,SAASxB,OAAO,IAAIyB,kBAAkB,QAAQ,sBAAsB;AACpE,cAAc,2BAA2B"} +\ No newline at end of file ++{"version":3,"names":["default","BaseNavigationContainer","createNavigationContainerRef","createNavigatorFactory","CurrentRenderContext","findFocusedRoute","getActionFromState","getFocusedRouteNameFromRoute","getPathFromState","getStateFromPath","NavigationContainerRefContext","NavigationContext","NavigationHelpersContext","NavigationRouteContext","PreventRemoveContext","PreventRemoveProvider","useFocusEffect","useIsFocused","useNavigation","NavigationBuilderOptions","useNavigationBuilder","useNavigationContainerRef","useNavigationState","UNSTABLE_usePreventRemove","usePreventRemoveContext","useRoute","validatePathConfig"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,SAASA,OAAO,IAAIC,uBAAuB,QAAQ,2BAA2B;AAC9E,SAASD,OAAO,IAAIE,4BAA4B,QAAQ,gCAAgC;AACxF,SAASF,OAAO,IAAIG,sBAAsB,QAAQ,0BAA0B;AAC5E,SAASH,OAAO,IAAII,oBAAoB,QAAQ,wBAAwB;AACxE,SAASJ,OAAO,IAAIK,gBAAgB,QAAQ,oBAAoB;AAChE,SAASL,OAAO,IAAIM,kBAAkB,QAAQ,sBAAsB;AACpE,SAASN,OAAO,IAAIO,4BAA4B,QAAQ,gCAAgC;AACxF,SAASP,OAAO,IAAIQ,gBAAgB,QAAQ,oBAAoB;AAChE,SAASR,OAAO,IAAIS,gBAAgB,QAAQ,oBAAoB;AAChE,SAAST,OAAO,IAAIU,6BAA6B,QAAQ,iCAAiC;AAC1F,SAASV,OAAO,IAAIW,iBAAiB,QAAQ,qBAAqB;AAClE,SAASX,OAAO,IAAIY,wBAAwB,QAAQ,4BAA4B;AAChF,SAASZ,OAAO,IAAIa,sBAAsB,QAAQ,0BAA0B;AAC5E,SAASb,OAAO,IAAIc,oBAAoB,QAAQ,wBAAwB;AACxE,SAASd,OAAO,IAAIe,qBAAqB,QAAQ,yBAAyB;AAC1E,cAAc,SAAS;AACvB,SAASf,OAAO,IAAIgB,cAAc,QAAQ,kBAAkB;AAC5D,SAAShB,OAAO,IAAIiB,YAAY,QAAQ,gBAAgB;AACxD,SAASjB,OAAO,IAAIkB,aAAa,QAAQ,iBAAiB;AAC1D,SACEC,wBAAwB,EACxBnB,OAAO,IAAIoB,oBAAoB,QAC1B,wBAAwB;AAC/B,SAASpB,OAAO,IAAIqB,yBAAyB,QAAQ,6BAA6B;AAClF,SAASrB,OAAO,IAAIsB,kBAAkB,QAAQ,sBAAsB;AACpE,SAAStB,OAAO,IAAIuB,yBAAyB,QAAQ,oBAAoB;AACzE,SAASvB,OAAO,IAAIwB,uBAAuB,QAAQ,2BAA2B;AAC9E,SAASxB,OAAO,IAAIyB,QAAQ,QAAQ,YAAY;AAChD,SAASzB,OAAO,IAAI0B,kBAAkB,QAAQ,sBAAsB;AACpE,cAAc,2BAA2B"} +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/module/types.js.map b/node_modules/@react-navigation/core/lib/module/types.js.map +index 21fd3e8..29de331 100644 +--- a/node_modules/@react-navigation/core/lib/module/types.js.map ++++ b/node_modules/@react-navigation/core/lib/module/types.js.map +@@ -1 +1 @@ +-{"version":3,"names":["PrivateValueStore"],"sourceRoot":"../../src","sources":["types.tsx"],"mappings":"AAoJA,OAAO,MAAMA,iBAAiB,CAA4B"} +\ No newline at end of file ++{"version":3,"names":["PrivateValueStore"],"sourceRoot":"../../src","sources":["types.tsx"],"mappings":"AAmLA,OAAO,MAAMA,iBAAiB,CAA4B"} +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/module/useDescriptors.js b/node_modules/@react-navigation/core/lib/module/useDescriptors.js +index b8f73f9..76fdab1 100644 +--- a/node_modules/@react-navigation/core/lib/module/useDescriptors.js ++++ b/node_modules/@react-navigation/core/lib/module/useDescriptors.js +@@ -12,8 +12,10 @@ import useRouteCache from './useRouteCache'; + * - Helper method to render a screen + * - Options specified by the screen for the navigator + * - Navigation object intended for the route ++ * @param convertCustomScreenOptions Function to convert custom screen options to screen options. ++ * If passed, it means that the `options`/`screenOptions` passed to the navigator are custom and need to be converted to regular screen options. + */ +-export default function useDescriptors(_ref) { ++export default function useDescriptors(_ref, convertCustomScreenOptions) { + let { + state, + screens, +@@ -58,29 +60,45 @@ export default function useDescriptors(_ref) { + const config = screens[route.name]; + const screen = config.props; + const navigation = navigations[route.key]; +- const optionsList = [ +- // The default `screenOptions` passed to the navigator +- screenOptions, +- // The `screenOptions` props passed to `Group` elements +- ...(config.options ? config.options.filter(Boolean) : []), +- // The `options` prop passed to `Screen` elements, +- screen.options, +- // The options set via `navigation.setOptions` +- options[route.key]]; ++ let optionsList; ++ if (convertCustomScreenOptions) { ++ optionsList = [ ++ // The default `screenOptions` passed to the navigator ++ convertCustomScreenOptions(screenOptions), ++ // The `screenOptions` props passed to `Group` elements ++ ...(config.options ? config.options.filter(Boolean).map(convertCustomScreenOptions) : []), ++ // The `options` prop passed to `Screen` elements, ++ convertCustomScreenOptions(screen.options), ++ // The options set via `navigation.setOptions` ++ convertCustomScreenOptions(options[route.key])]; ++ } else { ++ optionsList = [ ++ // The default `screenOptions` passed to the navigator ++ screenOptions, ++ // The `screenOptions` props passed to `Group` elements ++ ...(config.options ? config.options.filter(Boolean) : []), ++ // The `options` prop passed to `Screen` elements, ++ screen.options, ++ // The options set via `navigation.setOptions` ++ options[route.key]]; ++ } + const customOptions = optionsList.reduce((acc, curr) => Object.assign(acc, + // @ts-expect-error: we check for function but TS still complains + typeof curr !== 'function' ? curr : curr({ + route, + navigation + })), {}); ++ const customDefaultScreenOptions = (convertCustomScreenOptions === null || convertCustomScreenOptions === void 0 ? void 0 : convertCustomScreenOptions(defaultScreenOptions)) ?? defaultScreenOptions; + const mergedOptions = { + ...(typeof defaultScreenOptions === 'function' ? ++ // In Expensify's PlatformStackNavigation we don't allow a callback function for `defaultScreenOptions`, ++ // therefore we don't need to convert any custom default options when it's a function. + // @ts-expect-error: ts gives incorrect error here + defaultScreenOptions({ + route, + navigation, + options: customOptions +- }) : defaultScreenOptions), ++ }) : customDefaultScreenOptions), + ...customOptions + }; + const clearOptions = () => setOptions(o => { +diff --git a/node_modules/@react-navigation/core/lib/module/useDescriptors.js.map b/node_modules/@react-navigation/core/lib/module/useDescriptors.js.map +index 77a198a..026d685 100644 +--- a/node_modules/@react-navigation/core/lib/module/useDescriptors.js.map ++++ b/node_modules/@react-navigation/core/lib/module/useDescriptors.js.map +@@ -1 +1 @@ +-{"version":3,"names":["React","NavigationBuilderContext","NavigationContext","NavigationRouteContext","SceneView","useNavigationCache","useRouteCache","useDescriptors","state","screens","navigation","screenOptions","defaultScreenOptions","onAction","getState","setState","addListener","addKeyedListener","onRouteFocus","router","emitter","options","setOptions","useState","onDispatchAction","onOptionsChange","stackRef","useContext","context","useMemo","navigations","routes","reduce","acc","route","i","config","name","screen","props","key","optionsList","filter","Boolean","customOptions","curr","Object","assign","mergedOptions","clearOptions","o","_","rest","render"],"sourceRoot":"../../src","sources":["useDescriptors.tsx"],"mappings":"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"} +\ No newline at end of file ++{"version":3,"names":["React","NavigationBuilderContext","NavigationContext","NavigationRouteContext","SceneView","useNavigationCache","useRouteCache","useDescriptors","convertCustomScreenOptions","state","screens","navigation","screenOptions","defaultScreenOptions","onAction","getState","setState","addListener","addKeyedListener","onRouteFocus","router","emitter","options","setOptions","useState","onDispatchAction","onOptionsChange","stackRef","useContext","context","useMemo","navigations","routes","reduce","acc","route","i","config","name","screen","props","key","optionsList","filter","Boolean","map","customOptions","curr","Object","assign","customDefaultScreenOptions","mergedOptions","clearOptions","o","_","rest","render"],"sourceRoot":"../../src","sources":["useDescriptors.tsx"],"mappings":"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"} +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/module/useNavigationBuilder.js b/node_modules/@react-navigation/core/lib/module/useNavigationBuilder.js +index 6fb49e0..e17764e 100644 +--- a/node_modules/@react-navigation/core/lib/module/useNavigationBuilder.js ++++ b/node_modules/@react-navigation/core/lib/module/useNavigationBuilder.js +@@ -119,9 +119,11 @@ const getRouteConfigsFromChildren = (children, groupKey, groupOptions) => { + * + * @param createRouter Factory method which returns router object. + * @param options Options object containing `children` and additional options for the router. ++ * @param convertCustomScreenOptions Function to convert custom screen options to screen options. ++ * If passed, it means that the `options`/`screenOptions` passed to the navigator are custom and need to be converted to regular screen options. + * @returns An object containing `state`, `navigation`, `descriptors` objects. + */ +-export default function useNavigationBuilder(createRouter, options) { ++export default function useNavigationBuilder(createRouter, options, convertCustomScreenOptions) { + const navigatorKey = useRegisterNavigator(); + const route = React.useContext(NavigationRouteContext); + const { +@@ -425,7 +427,7 @@ export default function useNavigationBuilder(createRouter, options) { + router, + // @ts-expect-error: this should have both core and custom events, but too much work right now + emitter +- }); ++ }, convertCustomScreenOptions); + useCurrentRender({ + state, + navigation, +diff --git a/node_modules/@react-navigation/core/lib/module/useNavigationBuilder.js.map b/node_modules/@react-navigation/core/lib/module/useNavigationBuilder.js.map +index 5d5cdbd..9724f28 100644 +--- a/node_modules/@react-navigation/core/lib/module/useNavigationBuilder.js.map ++++ b/node_modules/@react-navigation/core/lib/module/useNavigationBuilder.js.map +@@ -1 +1 @@ +-{"version":3,"names":["CommonActions","React","isValidElementType","Group","isArrayEqual","isRecordEqual","NavigationHelpersContext","NavigationRouteContext","NavigationStateContext","PreventRemoveProvider","Screen","PrivateValueStore","useChildListeners","useComponent","useCurrentRender","useDescriptors","useEventEmitter","useFocusedListenersChildrenAdapter","useFocusEvents","useKeyedChildListeners","useNavigationHelpers","useOnAction","useOnGetState","useOnRouteFocus","useRegisterNavigator","useScheduleUpdate","isValidKey","key","undefined","getRouteConfigsFromChildren","children","groupKey","groupOptions","configs","Children","toArray","reduce","acc","child","isValidElement","type","props","navigationKey","Error","JSON","stringify","name","push","keys","options","Fragment","screenOptions","String","process","env","NODE_ENV","forEach","config","component","getComponent","console","warn","test","useNavigationBuilder","createRouter","navigatorKey","route","useContext","screenListeners","rest","current","router","useRef","params","state","initial","screen","initialRouteName","routeConfigs","screens","routeNames","map","routeKeyList","curr","join","routeParamList","initialParams","routeGetIdList","Object","assign","getId","length","isStateValid","useCallback","isStateInitialized","stale","currentState","getState","getCurrentState","setState","setCurrentState","setKey","getKey","getIsInitial","stateCleanedUp","cleanUpState","initializedState","isFirstStateInitialization","useMemo","initialRouteParamList","initialParamsFromParams","getInitialState","getRehydratedState","previousRouteKeyListRef","useEffect","previousRouteKeyList","nextState","getStateForRouteNamesChange","routeKeyChanges","filter","hasOwnProperty","previousNestedParamsRef","previousParams","action","reset","navigate","path","updatedState","getStateForAction","shouldUpdate","setTimeout","initializedStateRef","emitter","e","target","routes","find","index","navigation","descriptors","listeners","concat","cb","i","self","lastIndexOf","listener","emit","data","childListeners","addListener","keyedListeners","addKeyedListener","onAction","actionListeners","beforeRemoveListeners","beforeRemove","routerConfigOptions","onRouteFocus","id","focusedListeners","focus","getStateListeners","defaultScreenOptions","NavigationContent"],"sourceRoot":"../../src","sources":["useNavigationBuilder.tsx"],"mappings":"AAAA,SACEA,aAAa,QAUR,2BAA2B;AAClC,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,SAASC,kBAAkB,QAAQ,UAAU;AAE7C,OAAOC,KAAK,MAAM,SAAS;AAC3B,OAAOC,YAAY,MAAM,gBAAgB;AACzC,OAAOC,aAAa,MAAM,iBAAiB;AAC3C,OAAOC,wBAAwB,MAAM,4BAA4B;AACjE,OAAOC,sBAAsB,MAAM,0BAA0B;AAC7D,OAAOC,sBAAsB,MAAM,0BAA0B;AAC7D,OAAOC,qBAAqB,MAAM,yBAAyB;AAC3D,OAAOC,MAAM,MAAM,UAAU;AAC7B,SAKEC,iBAAiB,QAGZ,SAAS;AAChB,OAAOC,iBAAiB,MAAM,qBAAqB;AACnD,OAAOC,YAAY,MAAM,gBAAgB;AACzC,OAAOC,gBAAgB,MAAM,oBAAoB;AACjD,OAAOC,cAAc,MAAkC,kBAAkB;AACzE,OAAOC,eAAe,MAAM,mBAAmB;AAC/C,OAAOC,kCAAkC,MAAM,sCAAsC;AACrF,OAAOC,cAAc,MAAM,kBAAkB;AAC7C,OAAOC,sBAAsB,MAAM,0BAA0B;AAC7D,OAAOC,oBAAoB,MAAM,wBAAwB;AACzD,OAAOC,WAAW,MAAM,eAAe;AACvC,OAAOC,aAAa,MAAM,iBAAiB;AAC3C,OAAOC,eAAe,MAAM,mBAAmB;AAC/C,OAAOC,oBAAoB,MAAM,wBAAwB;AACzD,OAAOC,iBAAiB,MAAM,qBAAqB;;AAEnD;AACA;AACAd,iBAAiB;AAqBjB,MAAMe,UAAU,GAAIC,GAAY,IAC9BA,GAAG,KAAKC,SAAS,IAAK,OAAOD,GAAG,KAAK,QAAQ,IAAIA,GAAG,KAAK,EAAG;;AAE9D;AACA;AACA;AACA;AACA;AACA,MAAME,2BAA2B,GAAG,CAKlCC,QAAyB,EACzBC,QAAiB,EACjBC,YAIY,KACT;EACH,MAAMC,OAAO,GAAGhC,KAAK,CAACiC,QAAQ,CAACC,OAAO,CAACL,QAAQ,CAAC,CAACM,MAAM,CAErD,CAACC,GAAG,EAAEC,KAAK,KAAK;IAAA;IAChB,kBAAIrC,KAAK,CAACsC,cAAc,CAACD,KAAK,CAAC,EAAE;MAC/B,IAAIA,KAAK,CAACE,IAAI,KAAK9B,MAAM,EAAE;QACzB;QACA;;QAEA,IAAI,CAACgB,UAAU,CAACY,KAAK,CAACG,KAAK,CAACC,aAAa,CAAC,EAAE;UAC1C,MAAM,IAAIC,KAAK,CACZ,wCAAuCC,IAAI,CAACC,SAAS,CACpDP,KAAK,CAACG,KAAK,CAACC,aAAa,CACzB,qBACAJ,KAAK,CAACG,KAAK,CAACK,IACb,kDAAiD,CACnD;QACH;QAEAT,GAAG,CAACU,IAAI,CAAC;UACPC,IAAI,EAAE,CAACjB,QAAQ,EAAEO,KAAK,CAACG,KAAK,CAACC,aAAa,CAAC;UAC3CO,OAAO,EAAEjB,YAAY;UACrBS,KAAK,EAAEH,KAAK,CAACG;QAOf,CAAC,CAAC;QACF,OAAOJ,GAAG;MACZ;MAEA,IAAIC,KAAK,CAACE,IAAI,KAAKvC,KAAK,CAACiD,QAAQ,IAAIZ,KAAK,CAACE,IAAI,KAAKrC,KAAK,EAAE;QACzD,IAAI,CAACuB,UAAU,CAACY,KAAK,CAACG,KAAK,CAACC,aAAa,CAAC,EAAE;UAC1C,MAAM,IAAIC,KAAK,CACZ,wCAAuCC,IAAI,CAACC,SAAS,CACpDP,KAAK,CAACG,KAAK,CAACC,aAAa,CACzB,gEAA+D,CAClE;QACH;;QAEA;QACA;QACAL,GAAG,CAACU,IAAI,CACN,GAAGlB,2BAA2B,CAC5BS,KAAK,CAACG,KAAK,CAACX,QAAQ,EACpBQ,KAAK,CAACG,KAAK,CAACC,aAAa,EACzBJ,KAAK,CAACE,IAAI,KAAKrC,KAAK,GAChB6B,YAAY,GACZA,YAAY,IAAI,IAAI,GACpB,CAAC,GAAGA,YAAY,EAAEM,KAAK,CAACG,KAAK,CAACU,aAAa,CAAC,GAC5C,CAACb,KAAK,CAACG,KAAK,CAACU,aAAa,CAAC,CAChC,CACF;QACD,OAAOd,GAAG;MACZ;IACF;IAEA,MAAM,IAAIM,KAAK,CACZ,oGACC,aAAA1C,KAAK,CAACsC,cAAc,CAACD,KAAK,CAAC,GACtB,IACC,OAAOA,KAAK,CAACE,IAAI,KAAK,QAAQ,GAAGF,KAAK,CAACE,IAAI,kBAAGF,KAAK,CAACE,IAAI,gDAAV,YAAYM,IAC3D,IACCR,KAAK,CAACG,KAAK,IAAI,IAAI,IACnB,OAAOH,KAAK,CAACG,KAAK,KAAK,QAAQ,IAC/B,MAAM,IAAIH,KAAK,CAACG,KAAK,oBACrBH,KAAK,CAACG,KAAK,yCAAX,aAAaK,IAAI,GACZ,oBAAmBR,KAAK,CAACG,KAAK,CAACK,IAAK,GAAE,GACvC,EACL,EAAC,GACF,OAAOR,KAAK,KAAK,QAAQ,GACzBM,IAAI,CAACC,SAAS,CAACP,KAAK,CAAC,GACpB,IAAGc,MAAM,CAACd,KAAK,CAAE,GACvB,4FAA2F,CAC7F;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,IAAIe,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;IACzCtB,OAAO,CAACuB,OAAO,CAAEC,MAAM,IAAK;MAC1B,MAAM;QAAEX,IAAI;QAAEhB,QAAQ;QAAE4B,SAAS;QAAEC;MAAa,CAAC,GAAGF,MAAM,CAAChB,KAAK;MAEhE,IAAI,OAAOK,IAAI,KAAK,QAAQ,IAAI,CAACA,IAAI,EAAE;QACrC,MAAM,IAAIH,KAAK,CACZ,wBAAuBC,IAAI,CAACC,SAAS,CACpCC,IAAI,CACJ,kDAAiD,CACpD;MACH;MAEA,IACEhB,QAAQ,IAAI,IAAI,IAChB4B,SAAS,KAAK9B,SAAS,IACvB+B,YAAY,KAAK/B,SAAS,EAC1B;QACA,IAAIE,QAAQ,IAAI,IAAI,IAAI4B,SAAS,KAAK9B,SAAS,EAAE;UAC/C,MAAM,IAAIe,KAAK,CACZ,6DAA4DG,IAAK,oCAAmC,CACtG;QACH;QAEA,IAAIhB,QAAQ,IAAI,IAAI,IAAI6B,YAAY,KAAK/B,SAAS,EAAE;UAClD,MAAM,IAAIe,KAAK,CACZ,gEAA+DG,IAAK,oCAAmC,CACzG;QACH;QAEA,IAAIY,SAAS,KAAK9B,SAAS,IAAI+B,YAAY,KAAK/B,SAAS,EAAE;UACzD,MAAM,IAAIe,KAAK,CACZ,iEAAgEG,IAAK,oCAAmC,CAC1G;QACH;QAEA,IAAIhB,QAAQ,IAAI,IAAI,IAAI,OAAOA,QAAQ,KAAK,UAAU,EAAE;UACtD,MAAM,IAAIa,KAAK,CACZ,4DAA2DG,IAAK,qDAAoD,CACtH;QACH;QAEA,IAAIY,SAAS,KAAK9B,SAAS,IAAI,CAAC1B,kBAAkB,CAACwD,SAAS,CAAC,EAAE;UAC7D,MAAM,IAAIf,KAAK,CACZ,6DAA4DG,IAAK,wCAAuC,CAC1G;QACH;QAEA,IAAIa,YAAY,KAAK/B,SAAS,IAAI,OAAO+B,YAAY,KAAK,UAAU,EAAE;UACpE,MAAM,IAAIhB,KAAK,CACZ,gEAA+DG,IAAK,uDAAsD,CAC5H;QACH;QAEA,IAAI,OAAOY,SAAS,KAAK,UAAU,EAAE;UACnC,IAAIA,SAAS,CAACZ,IAAI,KAAK,WAAW,EAAE;YAClC;YACA;YACA;YACAc,OAAO,CAACC,IAAI,CACT,qFAAoFf,IAAK,uRAAsR,CACjX;UACH,CAAC,MAAM,IAAI,QAAQ,CAACgB,IAAI,CAACJ,SAAS,CAACZ,IAAI,CAAC,EAAE;YACxCc,OAAO,CAACC,IAAI,CACT,kCAAiCH,SAAS,CAACZ,IAAK,qBAAoBA,IAAK,yMAAwM,CACnR;UACH;QACF;MACF,CAAC,MAAM;QACL,MAAM,IAAIH,KAAK,CACZ,kFAAiFG,IAAK,qLAAoL,CAC5Q;MACH;IACF,CAAC,CAAC;EACJ;EAEA,OAAOb,OAAO;AAChB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS8B,oBAAoB,CAO1CC,YAAsD,EACtDf,OAOe,EACf;EACA,MAAMgB,YAAY,GAAGzC,oBAAoB,EAAE;EAE3C,MAAM0C,KAAK,GAAGjE,KAAK,CAACkE,UAAU,CAAC5D,sBAAsB,CAExC;EAEb,MAAM;IAAEuB,QAAQ;IAAEsC,eAAe;IAAE,GAAGC;EAAK,CAAC,GAAGpB,OAAO;EACtD,MAAM;IAAEqB,OAAO,EAAEC;EAAO,CAAC,GAAGtE,KAAK,CAACuE,MAAM,CACtCR,YAAY,CAAC;IACX,GAAIK,IAAiC;IACrC,IAAIH,KAAK,aAALA,KAAK,eAALA,KAAK,CAAEO,MAAM,IACjBP,KAAK,CAACO,MAAM,CAACC,KAAK,IAAI,IAAI,IAC1BR,KAAK,CAACO,MAAM,CAACE,OAAO,KAAK,KAAK,IAC9B,OAAOT,KAAK,CAACO,MAAM,CAACG,MAAM,KAAK,QAAQ,GACnC;MAAEC,gBAAgB,EAAEX,KAAK,CAACO,MAAM,CAACG;IAAO,CAAC,GACzC,IAAI;EACV,CAAC,CAAC,CACH;EAED,MAAME,YAAY,GAAGjD,2BAA2B,CAI9CC,QAAQ,CAAC;EAEX,MAAMiD,OAAO,GAAGD,YAAY,CAAC1C,MAAM,CAEjC,CAACC,GAAG,EAAEoB,MAAM,KAAK;IACjB,IAAIA,MAAM,CAAChB,KAAK,CAACK,IAAI,IAAIT,GAAG,EAAE;MAC5B,MAAM,IAAIM,KAAK,CACZ,6GAA4Gc,MAAM,CAAChB,KAAK,CAACK,IAAK,IAAG,CACnI;IACH;IAEAT,GAAG,CAACoB,MAAM,CAAChB,KAAK,CAACK,IAAI,CAAC,GAAGW,MAAM;IAC/B,OAAOpB,GAAG;EACZ,CAAC,EAAE,CAAC,CAAC,CAAC;EAEN,MAAM2C,UAAU,GAAGF,YAAY,CAACG,GAAG,CAAExB,MAAM,IAAKA,MAAM,CAAChB,KAAK,CAACK,IAAI,CAAC;EAClE,MAAMoC,YAAY,GAAGF,UAAU,CAAC5C,MAAM,CACpC,CAACC,GAAG,EAAE8C,IAAI,KAAK;IACb9C,GAAG,CAAC8C,IAAI,CAAC,GAAGJ,OAAO,CAACI,IAAI,CAAC,CAACnC,IAAI,CAACiC,GAAG,CAAEtD,GAAG,IAAKA,GAAG,IAAI,EAAE,CAAC,CAACyD,IAAI,CAAC,GAAG,CAAC;IAChE,OAAO/C,GAAG;EACZ,CAAC,EACD,CAAC,CAAC,CACH;EACD,MAAMgD,cAAc,GAAGL,UAAU,CAAC5C,MAAM,CACtC,CAACC,GAAG,EAAE8C,IAAI,KAAK;IACb,MAAM;MAAEG;IAAc,CAAC,GAAGP,OAAO,CAACI,IAAI,CAAC,CAAC1C,KAAK;IAC7CJ,GAAG,CAAC8C,IAAI,CAAC,GAAGG,aAAa;IACzB,OAAOjD,GAAG;EACZ,CAAC,EACD,CAAC,CAAC,CACH;EACD,MAAMkD,cAAc,GAAGP,UAAU,CAAC5C,MAAM,CAGtC,CAACC,GAAG,EAAE8C,IAAI,KACRK,MAAM,CAACC,MAAM,CAACpD,GAAG,EAAE;IACjB,CAAC8C,IAAI,GAAGJ,OAAO,CAACI,IAAI,CAAC,CAAC1C,KAAK,CAACiD;EAC9B,CAAC,CAAC,EACJ,CAAC,CAAC,CACH;EAED,IAAI,CAACV,UAAU,CAACW,MAAM,EAAE;IACtB,MAAM,IAAIhD,KAAK,CACb,4FAA4F,CAC7F;EACH;EAEA,MAAMiD,YAAY,GAAG3F,KAAK,CAAC4F,WAAW,CACnCnB,KAAsD,IACrDA,KAAK,CAAClC,IAAI,KAAKZ,SAAS,IAAI8C,KAAK,CAAClC,IAAI,KAAK+B,MAAM,CAAC/B,IAAI,EACxD,CAAC+B,MAAM,CAAC/B,IAAI,CAAC,CACd;EAED,MAAMsD,kBAAkB,GAAG7F,KAAK,CAAC4F,WAAW,CACzCnB,KAAkE,IACjEA,KAAK,KAAK9C,SAAS,IAAI8C,KAAK,CAACqB,KAAK,KAAK,KAAK,IAAIH,YAAY,CAAClB,KAAK,CAAC,EACrE,CAACkB,YAAY,CAAC,CACf;EAED,MAAM;IACJlB,KAAK,EAAEsB,YAAY;IACnBC,QAAQ,EAAEC,eAAe;IACzBC,QAAQ,EAAEC,eAAe;IACzBC,MAAM;IACNC,MAAM;IACNC;EACF,CAAC,GAAGtG,KAAK,CAACkE,UAAU,CAAC3D,sBAAsB,CAAC;EAE5C,MAAMgG,cAAc,GAAGvG,KAAK,CAACuE,MAAM,CAAC,KAAK,CAAC;EAE1C,MAAMiC,YAAY,GAAGxG,KAAK,CAAC4F,WAAW,CAAC,MAAM;IAC3CO,eAAe,CAACxE,SAAS,CAAC;IAC1B4E,cAAc,CAAClC,OAAO,GAAG,IAAI;EAC/B,CAAC,EAAE,CAAC8B,eAAe,CAAC,CAAC;EAErB,MAAMD,QAAQ,GAAGlG,KAAK,CAAC4F,WAAW,CAC/BnB,KAAkE,IAAK;IACtE,IAAI8B,cAAc,CAAClC,OAAO,EAAE;MAC1B;MACA;MACA;MACA;IACF;IACA8B,eAAe,CAAC1B,KAAK,CAAC;EACxB,CAAC,EACD,CAAC0B,eAAe,CAAC,CAClB;EAED,MAAM,CAACM,gBAAgB,EAAEC,0BAA0B,CAAC,GAAG1G,KAAK,CAAC2G,OAAO,CAAC,MAAM;IAAA;IACzE,MAAMC,qBAAqB,GAAG7B,UAAU,CAAC5C,MAAM,CAE7C,CAACC,GAAG,EAAE8C,IAAI,KAAK;MAAA;MACf,MAAM;QAAEG;MAAc,CAAC,GAAGP,OAAO,CAACI,IAAI,CAAC,CAAC1C,KAAK;MAC7C,MAAMqE,uBAAuB,GAC3B,CAAA5C,KAAK,aAALA,KAAK,wCAALA,KAAK,CAAEO,MAAM,kDAAb,cAAeC,KAAK,KAAI,IAAI,IAC5B,CAAAR,KAAK,aAALA,KAAK,yCAALA,KAAK,CAAEO,MAAM,mDAAb,eAAeE,OAAO,MAAK,KAAK,IAChC,CAAAT,KAAK,aAALA,KAAK,yCAALA,KAAK,CAAEO,MAAM,mDAAb,eAAeG,MAAM,MAAKO,IAAI,GAC1BjB,KAAK,CAACO,MAAM,CAACA,MAAM,GACnB7C,SAAS;MAEfS,GAAG,CAAC8C,IAAI,CAAC,GACPG,aAAa,KAAK1D,SAAS,IAAIkF,uBAAuB,KAAKlF,SAAS,GAChE;QACE,GAAG0D,aAAa;QAChB,GAAGwB;MACL,CAAC,GACDlF,SAAS;MAEf,OAAOS,GAAG;IACZ,CAAC,EAAE,CAAC,CAAC,CAAC;;IAEN;IACA;IACA;IACA;IACA,IACE,CAAC2D,YAAY,KAAKpE,SAAS,IAAI,CAACgE,YAAY,CAACI,YAAY,CAAC,KAC1D,CAAA9B,KAAK,aAALA,KAAK,yCAALA,KAAK,CAAEO,MAAM,mDAAb,eAAeC,KAAK,KAAI,IAAI,EAC5B;MACA,OAAO,CACLH,MAAM,CAACwC,eAAe,CAAC;QACrB/B,UAAU;QACVK,cAAc,EAAEwB,qBAAqB;QACrCtB;MACF,CAAC,CAAC,EACF,IAAI,CACL;IACH,CAAC,MAAM;MAAA;MACL,OAAO,CACLhB,MAAM,CAACyC,kBAAkB,CACvB,CAAA9C,KAAK,aAALA,KAAK,yCAALA,KAAK,CAAEO,MAAM,mDAAb,eAAeC,KAAK,KAAKsB,YAAoC,EAC7D;QACEhB,UAAU;QACVK,cAAc,EAAEwB,qBAAqB;QACrCtB;MACF,CAAC,CACF,EACD,KAAK,CACN;IACH;IACA;IACA;IACA;IACA;IACA;IACA;EACF,CAAC,EAAE,CAACS,YAAY,EAAEzB,MAAM,EAAEqB,YAAY,CAAC,CAAC;EAExC,MAAMqB,uBAAuB,GAAGhH,KAAK,CAACuE,MAAM,CAACU,YAAY,CAAC;EAE1DjF,KAAK,CAACiH,SAAS,CAAC,MAAM;IACpBD,uBAAuB,CAAC3C,OAAO,GAAGY,YAAY;EAChD,CAAC,CAAC;EAEF,MAAMiC,oBAAoB,GAAGF,uBAAuB,CAAC3C,OAAO;EAE5D,IAAII,KAAK;EACP;EACA;EACA;EACAoB,kBAAkB,CAACE,YAAY,CAAC,GAC3BA,YAAY,GACZU,gBAA0B;EAEjC,IAAIU,SAAgB,GAAG1C,KAAK;EAE5B,IACE,CAACtE,YAAY,CAACsE,KAAK,CAACM,UAAU,EAAEA,UAAU,CAAC,IAC3C,CAAC3E,aAAa,CAAC6E,YAAY,EAAEiC,oBAAoB,CAAC,EAClD;IACA;IACAC,SAAS,GAAG7C,MAAM,CAAC8C,2BAA2B,CAAC3C,KAAK,EAAE;MACpDM,UAAU;MACVK,cAAc;MACdE,cAAc;MACd+B,eAAe,EAAE9B,MAAM,CAACxC,IAAI,CAACkC,YAAY,CAAC,CAACqC,MAAM,CAC9CzE,IAAI,IACHqE,oBAAoB,CAACK,cAAc,CAAC1E,IAAI,CAAC,IACzCoC,YAAY,CAACpC,IAAI,CAAC,KAAKqE,oBAAoB,CAACrE,IAAI,CAAC;IAEvD,CAAC,CAAC;EACJ;EAEA,MAAM2E,uBAAuB,GAAGxH,KAAK,CAACuE,MAAM,CAACN,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEO,MAAM,CAAC;EAE3DxE,KAAK,CAACiH,SAAS,CAAC,MAAM;IACpBO,uBAAuB,CAACnD,OAAO,GAAGJ,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEO,MAAM;EACjD,CAAC,EAAE,CAACP,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEO,MAAM,CAAC,CAAC;EAEnB,IAAIP,KAAK,aAALA,KAAK,eAALA,KAAK,CAAEO,MAAM,EAAE;IACjB,MAAMiD,cAAc,GAAGD,uBAAuB,CAACnD,OAAO;IAEtD,IAAIqD,MAAwC;IAE5C,IACE,OAAOzD,KAAK,CAACO,MAAM,CAACC,KAAK,KAAK,QAAQ,IACtCR,KAAK,CAACO,MAAM,CAACC,KAAK,IAAI,IAAI,IAC1BR,KAAK,CAACO,MAAM,KAAKiD,cAAc,EAC/B;MACA;MACAC,MAAM,GAAG3H,aAAa,CAAC4H,KAAK,CAAC1D,KAAK,CAACO,MAAM,CAACC,KAAK,CAAC;IAClD,CAAC,MAAM,IACL,OAAOR,KAAK,CAACO,MAAM,CAACG,MAAM,KAAK,QAAQ,KACrCV,KAAK,CAACO,MAAM,CAACE,OAAO,KAAK,KAAK,IAAIgC,0BAA0B,IAC5DzC,KAAK,CAACO,MAAM,KAAKiD,cAAc,CAAC,EAClC;MACA;MACAC,MAAM,GAAG3H,aAAa,CAAC6H,QAAQ,CAAC;QAC9B/E,IAAI,EAAEoB,KAAK,CAACO,MAAM,CAACG,MAAM;QACzBH,MAAM,EAAEP,KAAK,CAACO,MAAM,CAACA,MAAM;QAC3BqD,IAAI,EAAE5D,KAAK,CAACO,MAAM,CAACqD;MACrB,CAAC,CAAC;IACJ;;IAEA;IACA,MAAMC,YAAY,GAAGJ,MAAM,GACvBpD,MAAM,CAACyD,iBAAiB,CAACZ,SAAS,EAAEO,MAAM,EAAE;MAC1C3C,UAAU;MACVK,cAAc;MACdE;IACF,CAAC,CAAC,GACF,IAAI;IAER6B,SAAS,GACPW,YAAY,KAAK,IAAI,GACjBxD,MAAM,CAACyC,kBAAkB,CAACe,YAAY,EAAE;MACtC/C,UAAU;MACVK,cAAc;MACdE;IACF,CAAC,CAAC,GACF6B,SAAS;EACjB;EAEA,MAAMa,YAAY,GAAGvD,KAAK,KAAK0C,SAAS;EAExC3F,iBAAiB,CAAC,MAAM;IACtB,IAAIwG,YAAY,EAAE;MAChB;MACA9B,QAAQ,CAACiB,SAAS,CAAC;IACrB;EACF,CAAC,CAAC;;EAEF;EACA;EACA;EACA1C,KAAK,GAAG0C,SAAS;EAEjBnH,KAAK,CAACiH,SAAS,CAAC,MAAM;IACpBb,MAAM,CAACpC,YAAY,CAAC;IAEpB,IAAI,CAACsC,YAAY,EAAE,EAAE;MACnB;MACA;MACA;MACAJ,QAAQ,CAACiB,SAAS,CAAC;IACrB;IAEA,OAAO,MAAM;MACX;MACA;MACA;MACA;MACAc,UAAU,CAAC,MAAM;QACf,IAAIhC,eAAe,EAAE,KAAKtE,SAAS,IAAI0E,MAAM,EAAE,KAAKrC,YAAY,EAAE;UAChEwC,YAAY,EAAE;QAChB;MACF,CAAC,EAAE,CAAC,CAAC;IACP,CAAC;IACD;EACF,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA;EACA;EACA,MAAM0B,mBAAmB,GAAGlI,KAAK,CAACuE,MAAM,EAAS;EACjD2D,mBAAmB,CAAC7D,OAAO,GAAGoC,gBAAgB;EAE9C,MAAMT,QAAQ,GAAGhG,KAAK,CAAC4F,WAAW,CAAC,MAAa;IAC9C,MAAMG,YAAY,GAAGE,eAAe,EAAE;IAEtC,OAAOJ,kBAAkB,CAACE,YAAY,CAAC,GAClCA,YAAY,GACZmC,mBAAmB,CAAC7D,OAAiB;EAC5C,CAAC,EAAE,CAAC4B,eAAe,EAAEJ,kBAAkB,CAAC,CAAC;EAEzC,MAAMsC,OAAO,GAAGpH,eAAe,CAAuBqH,CAAC,IAAK;IAC1D,IAAIrD,UAAU,GAAG,EAAE;IAEnB,IAAId,KAAgC;IAEpC,IAAImE,CAAC,CAACC,MAAM,EAAE;MAAA;MACZpE,KAAK,GAAGQ,KAAK,CAAC6D,MAAM,CAACC,IAAI,CAAEtE,KAAK,IAAKA,KAAK,CAACvC,GAAG,KAAK0G,CAAC,CAACC,MAAM,CAAC;MAE5D,cAAIpE,KAAK,mCAAL,OAAOpB,IAAI,EAAE;QACfkC,UAAU,CAACjC,IAAI,CAACmB,KAAK,CAACpB,IAAI,CAAC;MAC7B;IACF,CAAC,MAAM;MACLoB,KAAK,GAAGQ,KAAK,CAAC6D,MAAM,CAAC7D,KAAK,CAAC+D,KAAK,CAAC;MACjCzD,UAAU,CAACjC,IAAI,CACb,GAAGyC,MAAM,CAACxC,IAAI,CAAC+B,OAAO,CAAC,CAACwC,MAAM,CAAEzE,IAAI;QAAA;QAAA,OAAK,YAAAoB,KAAK,4CAAL,QAAOpB,IAAI,MAAKA,IAAI;MAAA,EAAC,CAC/D;IACH;IAEA,IAAIoB,KAAK,IAAI,IAAI,EAAE;MACjB;IACF;IAEA,MAAMwE,UAAU,GAAGC,WAAW,CAACzE,KAAK,CAACvC,GAAG,CAAC,CAAC+G,UAAU;IAEpD,MAAME,SAAS,GAAI,EAAE,CAClBC,MAAM;IACL;IACA,GAAG,CACDzE,eAAe,EACf,GAAGY,UAAU,CAACC,GAAG,CAAEnC,IAAI,IAAK;MAC1B,MAAM;QAAE8F;MAAU,CAAC,GAAG7D,OAAO,CAACjC,IAAI,CAAC,CAACL,KAAK;MACzC,OAAOmG,SAAS;IAClB,CAAC,CAAC,CACH,CAAC3D,GAAG,CAAE2D,SAAS,IAAK;MACnB,MAAM3D,GAAG,GACP,OAAO2D,SAAS,KAAK,UAAU,GAC3BA,SAAS,CAAC;QAAE1E,KAAK,EAAEA,KAAY;QAAEwE;MAAW,CAAC,CAAC,GAC9CE,SAAS;MAEf,OAAO3D,GAAG,GACNO,MAAM,CAACxC,IAAI,CAACiC,GAAG,CAAC,CACbsC,MAAM,CAAE/E,IAAI,IAAKA,IAAI,KAAK6F,CAAC,CAAC7F,IAAI,CAAC,CACjCyC,GAAG,CAAEzC,IAAI,IAAKyC,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAGzC,IAAI,CAAC,CAAC,GAC7BZ,SAAS;IACf,CAAC,CAAC;IAEJ;IACA;IAAA,CACC2F,MAAM,CAAC,CAACuB,EAAE,EAAEC,CAAC,EAAEC,IAAI,KAAKF,EAAE,IAAIE,IAAI,CAACC,WAAW,CAACH,EAAE,CAAC,KAAKC,CAAC,CAAC;IAE5DH,SAAS,CAACpF,OAAO,CAAE0F,QAAQ,IAAKA,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAGb,CAAC,CAAC,CAAC;EAChD,CAAC,CAAC;EAEFnH,cAAc,CAAC;IAAEwD,KAAK;IAAE0D;EAAQ,CAAC,CAAC;EAElCnI,KAAK,CAACiH,SAAS,CAAC,MAAM;IACpBkB,OAAO,CAACe,IAAI,CAAC;MAAE3G,IAAI,EAAE,OAAO;MAAE4G,IAAI,EAAE;QAAE1E;MAAM;IAAE,CAAC,CAAC;EAClD,CAAC,EAAE,CAAC0D,OAAO,EAAE1D,KAAK,CAAC,CAAC;EAEpB,MAAM;IAAEkE,SAAS,EAAES,cAAc;IAAEC;EAAY,CAAC,GAAG1I,iBAAiB,EAAE;EAEtE,MAAM;IAAE2I,cAAc;IAAEC;EAAiB,CAAC,GAAGrI,sBAAsB,EAAE;EAErE,MAAMsI,QAAQ,GAAGpI,WAAW,CAAC;IAC3BkD,MAAM;IACN0B,QAAQ;IACRE,QAAQ;IACRxE,GAAG,EAAEuC,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEvC,GAAG;IACf+H,eAAe,EAAEL,cAAc,CAAC1B,MAAM;IACtCgC,qBAAqB,EAAEJ,cAAc,CAACK,YAAY;IAClDC,mBAAmB,EAAE;MACnB7E,UAAU;MACVK,cAAc;MACdE;IACF,CAAC;IACD6C;EACF,CAAC,CAAC;EAEF,MAAM0B,YAAY,GAAGvI,eAAe,CAAC;IACnCgD,MAAM;IACN5C,GAAG,EAAEuC,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEvC,GAAG;IACfsE,QAAQ;IACRE;EACF,CAAC,CAAC;EAEF,MAAMuC,UAAU,GAAGtH,oBAAoB,CAKrC;IACA2I,EAAE,EAAE9G,OAAO,CAAC8G,EAAE;IACdN,QAAQ;IACRxD,QAAQ;IACRmC,OAAO;IACP7D;EACF,CAAC,CAAC;EAEFtD,kCAAkC,CAAC;IACjCyH,UAAU;IACVsB,gBAAgB,EAAEX,cAAc,CAACY;EACnC,CAAC,CAAC;EAEF3I,aAAa,CAAC;IACZ2E,QAAQ;IACRiE,iBAAiB,EAAEX,cAAc,CAACtD;EACpC,CAAC,CAAC;EAEF,MAAM0C,WAAW,GAAG5H,cAAc,CAKhC;IACA2D,KAAK;IACLK,OAAO;IACP2D,UAAU;IACVvF,aAAa,EAAEF,OAAO,CAACE,aAAa;IACpCgH,oBAAoB,EAAElH,OAAO,CAACkH,oBAAoB;IAClDV,QAAQ;IACRxD,QAAQ;IACRE,QAAQ;IACR2D,YAAY;IACZR,WAAW;IACXE,gBAAgB;IAChBjF,MAAM;IACN;IACA6D;EACF,CAAC,CAAC;EAEFtH,gBAAgB,CAAC;IACf4D,KAAK;IACLgE,UAAU;IACVC;EACF,CAAC,CAAC;EAEF,MAAMyB,iBAAiB,GAAGvJ,YAAY,CAAEiB,QAAyB,iBAC/D,oBAAC,wBAAwB,CAAC,QAAQ;IAAC,KAAK,EAAE4G;EAAW,gBACnD,oBAAC,qBAAqB,QAAE5G,QAAQ,CAAyB,CAE5D,CAAC;EAEF,OAAO;IACL4C,KAAK;IACLgE,UAAU;IACVC,WAAW;IACXyB;EACF,CAAC;AACH"} +\ No newline at end of file ++{"version":3,"names":["CommonActions","React","isValidElementType","Group","isArrayEqual","isRecordEqual","NavigationHelpersContext","NavigationRouteContext","NavigationStateContext","PreventRemoveProvider","Screen","PrivateValueStore","useChildListeners","useComponent","useCurrentRender","useDescriptors","useEventEmitter","useFocusedListenersChildrenAdapter","useFocusEvents","useKeyedChildListeners","useNavigationHelpers","useOnAction","useOnGetState","useOnRouteFocus","useRegisterNavigator","useScheduleUpdate","isValidKey","key","undefined","getRouteConfigsFromChildren","children","groupKey","groupOptions","configs","Children","toArray","reduce","acc","child","isValidElement","type","props","navigationKey","Error","JSON","stringify","name","push","keys","options","Fragment","screenOptions","String","process","env","NODE_ENV","forEach","config","component","getComponent","console","warn","test","useNavigationBuilder","createRouter","convertCustomScreenOptions","navigatorKey","route","useContext","screenListeners","rest","current","router","useRef","params","state","initial","screen","initialRouteName","routeConfigs","screens","routeNames","map","routeKeyList","curr","join","routeParamList","initialParams","routeGetIdList","Object","assign","getId","length","isStateValid","useCallback","isStateInitialized","stale","currentState","getState","getCurrentState","setState","setCurrentState","setKey","getKey","getIsInitial","stateCleanedUp","initializedState","isFirstStateInitialization","useMemo","initialRouteParamList","initialParamsFromParams","getInitialState","getRehydratedState","previousRouteKeyListRef","useEffect","previousRouteKeyList","nextState","getStateForRouteNamesChange","routeKeyChanges","filter","hasOwnProperty","previousNestedParamsRef","previousParams","action","reset","navigate","path","updatedState","getStateForAction","shouldUpdate","initializedStateRef","emitter","e","target","routes","find","index","navigation","descriptors","listeners","concat","cb","i","self","lastIndexOf","listener","emit","data","childListeners","addListener","keyedListeners","addKeyedListener","onAction","actionListeners","beforeRemoveListeners","beforeRemove","routerConfigOptions","onRouteFocus","id","focusedListeners","focus","getStateListeners","defaultScreenOptions","NavigationContent"],"sourceRoot":"../../src","sources":["useNavigationBuilder.tsx"],"mappings":"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"} +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/BaseNavigationContainer.test.d.ts b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/BaseNavigationContainer.test.d.ts +new file mode 100644 +index 0000000..d22cbd4 +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/BaseNavigationContainer.test.d.ts +@@ -0,0 +1,2 @@ ++export {}; ++//# sourceMappingURL=BaseNavigationContainer.test.d.ts.map +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/BaseNavigationContainer.test.d.ts.map b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/BaseNavigationContainer.test.d.ts.map +new file mode 100644 +index 0000000..6334965 +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/BaseNavigationContainer.test.d.ts.map +@@ -0,0 +1 @@ ++{"version":3,"file":"BaseNavigationContainer.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/BaseNavigationContainer.test.tsx"],"names":[],"mappings":""} +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/StaticContainer.test.d.ts b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/StaticContainer.test.d.ts +new file mode 100644 +index 0000000..433d407 +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/StaticContainer.test.d.ts +@@ -0,0 +1,2 @@ ++export {}; ++//# sourceMappingURL=StaticContainer.test.d.ts.map +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/StaticContainer.test.d.ts.map b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/StaticContainer.test.d.ts.map +new file mode 100644 +index 0000000..34bb501 +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/StaticContainer.test.d.ts.map +@@ -0,0 +1 @@ ++{"version":3,"file":"StaticContainer.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/StaticContainer.test.tsx"],"names":[],"mappings":""} +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/__fixtures__/MockRouter.d.ts b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/__fixtures__/MockRouter.d.ts +new file mode 100644 +index 0000000..7e2c7c6 +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/__fixtures__/MockRouter.d.ts +@@ -0,0 +1,25 @@ ++import { CommonNavigationAction, DefaultRouterOptions, Router } from '@react-navigation/routers'; ++export type MockActions = CommonNavigationAction | { ++ type: 'NOOP' | 'UPDATE'; ++}; ++export declare const MockRouterKey: { ++ current: number; ++}; ++export default function MockRouter(options: DefaultRouterOptions): Router & Readonly<{ ++ params?: Readonly; ++ }> & { ++ state?: Readonly | import("@react-navigation/routers").PartialState> | undefined; ++ })[]; ++ type: string; ++ stale: false; ++}>, MockActions>; ++//# sourceMappingURL=MockRouter.d.ts.map +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/__fixtures__/MockRouter.d.ts.map b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/__fixtures__/MockRouter.d.ts.map +new file mode 100644 +index 0000000..4ff520f +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/__fixtures__/MockRouter.d.ts.map +@@ -0,0 +1 @@ ++{"version":3,"file":"MockRouter.d.ts","sourceRoot":"","sources":["../../../../../src/__tests__/__fixtures__/MockRouter.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,sBAAsB,EACtB,oBAAoB,EAGpB,MAAM,EACP,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,WAAW,GAAG,sBAAsB,GAAG;IAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAA;CAAE,CAAC;AAE/E,eAAO,MAAM,aAAa;;CAAiB,CAAC;AAE5C,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,OAAO,EAAE,oBAAoB;;;;;;;;;;;;;;;;iBA+I/D"} +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/checkSerializable.test.d.ts b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/checkSerializable.test.d.ts +new file mode 100644 +index 0000000..1fa4c05 +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/checkSerializable.test.d.ts +@@ -0,0 +1,2 @@ ++export {}; ++//# sourceMappingURL=checkSerializable.test.d.ts.map +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/checkSerializable.test.d.ts.map b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/checkSerializable.test.d.ts.map +new file mode 100644 +index 0000000..7134153 +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/checkSerializable.test.d.ts.map +@@ -0,0 +1 @@ ++{"version":3,"file":"checkSerializable.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/checkSerializable.test.tsx"],"names":[],"mappings":""} +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/createNavigationContainerRef.test.d.ts b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/createNavigationContainerRef.test.d.ts +new file mode 100644 +index 0000000..600781b +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/createNavigationContainerRef.test.d.ts +@@ -0,0 +1,2 @@ ++export {}; ++//# sourceMappingURL=createNavigationContainerRef.test.d.ts.map +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/createNavigationContainerRef.test.d.ts.map b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/createNavigationContainerRef.test.d.ts.map +new file mode 100644 +index 0000000..c92c69c +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/createNavigationContainerRef.test.d.ts.map +@@ -0,0 +1 @@ ++{"version":3,"file":"createNavigationContainerRef.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/createNavigationContainerRef.test.tsx"],"names":[],"mappings":""} +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/createNavigatorFactory.test.d.ts b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/createNavigatorFactory.test.d.ts +new file mode 100644 +index 0000000..3dcc160 +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/createNavigatorFactory.test.d.ts +@@ -0,0 +1,2 @@ ++export {}; ++//# sourceMappingURL=createNavigatorFactory.test.d.ts.map +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/createNavigatorFactory.test.d.ts.map b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/createNavigatorFactory.test.d.ts.map +new file mode 100644 +index 0000000..8f35188 +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/createNavigatorFactory.test.d.ts.map +@@ -0,0 +1 @@ ++{"version":3,"file":"createNavigatorFactory.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/createNavigatorFactory.test.tsx"],"names":[],"mappings":""} +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/getActionFromState.test.d.ts b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/getActionFromState.test.d.ts +new file mode 100644 +index 0000000..df51c94 +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/getActionFromState.test.d.ts +@@ -0,0 +1,2 @@ ++export {}; ++//# sourceMappingURL=getActionFromState.test.d.ts.map +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/getActionFromState.test.d.ts.map b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/getActionFromState.test.d.ts.map +new file mode 100644 +index 0000000..e3191ac +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/getActionFromState.test.d.ts.map +@@ -0,0 +1 @@ ++{"version":3,"file":"getActionFromState.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/getActionFromState.test.tsx"],"names":[],"mappings":""} +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/getFocusedRouteNameFromRoute.test.d.ts b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/getFocusedRouteNameFromRoute.test.d.ts +new file mode 100644 +index 0000000..ae3812b +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/getFocusedRouteNameFromRoute.test.d.ts +@@ -0,0 +1,2 @@ ++export {}; ++//# sourceMappingURL=getFocusedRouteNameFromRoute.test.d.ts.map +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/getFocusedRouteNameFromRoute.test.d.ts.map b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/getFocusedRouteNameFromRoute.test.d.ts.map +new file mode 100644 +index 0000000..be64b01 +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/getFocusedRouteNameFromRoute.test.d.ts.map +@@ -0,0 +1 @@ ++{"version":3,"file":"getFocusedRouteNameFromRoute.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/getFocusedRouteNameFromRoute.test.tsx"],"names":[],"mappings":""} +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/getPathFromState.test.d.ts b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/getPathFromState.test.d.ts +new file mode 100644 +index 0000000..7625849 +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/getPathFromState.test.d.ts +@@ -0,0 +1,2 @@ ++export {}; ++//# sourceMappingURL=getPathFromState.test.d.ts.map +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/getPathFromState.test.d.ts.map b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/getPathFromState.test.d.ts.map +new file mode 100644 +index 0000000..b119f20 +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/getPathFromState.test.d.ts.map +@@ -0,0 +1 @@ ++{"version":3,"file":"getPathFromState.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/getPathFromState.test.tsx"],"names":[],"mappings":""} +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/getStateFromPath.test.d.ts b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/getStateFromPath.test.d.ts +new file mode 100644 +index 0000000..2ebde5a +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/getStateFromPath.test.d.ts +@@ -0,0 +1,2 @@ ++export {}; ++//# sourceMappingURL=getStateFromPath.test.d.ts.map +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/getStateFromPath.test.d.ts.map b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/getStateFromPath.test.d.ts.map +new file mode 100644 +index 0000000..cd928df +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/getStateFromPath.test.d.ts.map +@@ -0,0 +1 @@ ++{"version":3,"file":"getStateFromPath.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/getStateFromPath.test.tsx"],"names":[],"mappings":""} +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/index.test.d.ts b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/index.test.d.ts +new file mode 100644 +index 0000000..121d59b +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/index.test.d.ts +@@ -0,0 +1,2 @@ ++export {}; ++//# sourceMappingURL=index.test.d.ts.map +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/index.test.d.ts.map b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/index.test.d.ts.map +new file mode 100644 +index 0000000..7b9421a +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/index.test.d.ts.map +@@ -0,0 +1 @@ ++{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/index.test.tsx"],"names":[],"mappings":""} +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useDescriptors.test.d.ts b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useDescriptors.test.d.ts +new file mode 100644 +index 0000000..98b6561 +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useDescriptors.test.d.ts +@@ -0,0 +1,2 @@ ++export {}; ++//# sourceMappingURL=useDescriptors.test.d.ts.map +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useDescriptors.test.d.ts.map b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useDescriptors.test.d.ts.map +new file mode 100644 +index 0000000..666ac88 +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useDescriptors.test.d.ts.map +@@ -0,0 +1 @@ ++{"version":3,"file":"useDescriptors.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/useDescriptors.test.tsx"],"names":[],"mappings":""} +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useEventEmitter.test.d.ts b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useEventEmitter.test.d.ts +new file mode 100644 +index 0000000..86ccf20 +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useEventEmitter.test.d.ts +@@ -0,0 +1,2 @@ ++export {}; ++//# sourceMappingURL=useEventEmitter.test.d.ts.map +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useEventEmitter.test.d.ts.map b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useEventEmitter.test.d.ts.map +new file mode 100644 +index 0000000..0c223bb +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useEventEmitter.test.d.ts.map +@@ -0,0 +1 @@ ++{"version":3,"file":"useEventEmitter.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/useEventEmitter.test.tsx"],"names":[],"mappings":""} +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useFocusEffect.test.d.ts b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useFocusEffect.test.d.ts +new file mode 100644 +index 0000000..88a0334 +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useFocusEffect.test.d.ts +@@ -0,0 +1,2 @@ ++export {}; ++//# sourceMappingURL=useFocusEffect.test.d.ts.map +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useFocusEffect.test.d.ts.map b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useFocusEffect.test.d.ts.map +new file mode 100644 +index 0000000..14fd128 +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useFocusEffect.test.d.ts.map +@@ -0,0 +1 @@ ++{"version":3,"file":"useFocusEffect.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/useFocusEffect.test.tsx"],"names":[],"mappings":""} +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useIsFocused.test.d.ts b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useIsFocused.test.d.ts +new file mode 100644 +index 0000000..5ace84d +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useIsFocused.test.d.ts +@@ -0,0 +1,2 @@ ++export {}; ++//# sourceMappingURL=useIsFocused.test.d.ts.map +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useIsFocused.test.d.ts.map b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useIsFocused.test.d.ts.map +new file mode 100644 +index 0000000..eb4a60a +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useIsFocused.test.d.ts.map +@@ -0,0 +1 @@ ++{"version":3,"file":"useIsFocused.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/useIsFocused.test.tsx"],"names":[],"mappings":""} +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useNavigation.test.d.ts b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useNavigation.test.d.ts +new file mode 100644 +index 0000000..49943be +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useNavigation.test.d.ts +@@ -0,0 +1,2 @@ ++export {}; ++//# sourceMappingURL=useNavigation.test.d.ts.map +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useNavigation.test.d.ts.map b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useNavigation.test.d.ts.map +new file mode 100644 +index 0000000..0d5f05d +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useNavigation.test.d.ts.map +@@ -0,0 +1 @@ ++{"version":3,"file":"useNavigation.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/useNavigation.test.tsx"],"names":[],"mappings":""} +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useNavigationCache.test.d.ts b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useNavigationCache.test.d.ts +new file mode 100644 +index 0000000..c4bdd73 +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useNavigationCache.test.d.ts +@@ -0,0 +1,2 @@ ++export {}; ++//# sourceMappingURL=useNavigationCache.test.d.ts.map +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useNavigationCache.test.d.ts.map b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useNavigationCache.test.d.ts.map +new file mode 100644 +index 0000000..45d5eec +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useNavigationCache.test.d.ts.map +@@ -0,0 +1 @@ ++{"version":3,"file":"useNavigationCache.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/useNavigationCache.test.tsx"],"names":[],"mappings":""} +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useNavigationState.test.d.ts b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useNavigationState.test.d.ts +new file mode 100644 +index 0000000..3f3e1e8 +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useNavigationState.test.d.ts +@@ -0,0 +1,2 @@ ++export {}; ++//# sourceMappingURL=useNavigationState.test.d.ts.map +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useNavigationState.test.d.ts.map b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useNavigationState.test.d.ts.map +new file mode 100644 +index 0000000..7f87ce2 +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useNavigationState.test.d.ts.map +@@ -0,0 +1 @@ ++{"version":3,"file":"useNavigationState.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/useNavigationState.test.tsx"],"names":[],"mappings":""} +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useOnAction.test.d.ts b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useOnAction.test.d.ts +new file mode 100644 +index 0000000..a2d09c2 +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useOnAction.test.d.ts +@@ -0,0 +1,2 @@ ++export {}; ++//# sourceMappingURL=useOnAction.test.d.ts.map +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useOnAction.test.d.ts.map b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useOnAction.test.d.ts.map +new file mode 100644 +index 0000000..f1b8ce2 +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useOnAction.test.d.ts.map +@@ -0,0 +1 @@ ++{"version":3,"file":"useOnAction.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/useOnAction.test.tsx"],"names":[],"mappings":""} +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/usePreventRemove.test.d.ts b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/usePreventRemove.test.d.ts +new file mode 100644 +index 0000000..8f19ec2 +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/usePreventRemove.test.d.ts +@@ -0,0 +1,2 @@ ++export {}; ++//# sourceMappingURL=usePreventRemove.test.d.ts.map +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/usePreventRemove.test.d.ts.map b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/usePreventRemove.test.d.ts.map +new file mode 100644 +index 0000000..6c812fd +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/usePreventRemove.test.d.ts.map +@@ -0,0 +1 @@ ++{"version":3,"file":"usePreventRemove.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/usePreventRemove.test.tsx"],"names":[],"mappings":""} +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useRoute.test.d.ts b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useRoute.test.d.ts +new file mode 100644 +index 0000000..2fc7bc3 +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useRoute.test.d.ts +@@ -0,0 +1,2 @@ ++export {}; ++//# sourceMappingURL=useRoute.test.d.ts.map +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useRoute.test.d.ts.map b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useRoute.test.d.ts.map +new file mode 100644 +index 0000000..0f1e440 +--- /dev/null ++++ b/node_modules/@react-navigation/core/lib/typescript/src/__tests__/useRoute.test.d.ts.map +@@ -0,0 +1 @@ ++{"version":3,"file":"useRoute.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/useRoute.test.tsx"],"names":[],"mappings":""} +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/index.d.ts b/node_modules/@react-navigation/core/lib/typescript/src/index.d.ts +index e59dc93..9481d93 100644 +--- a/node_modules/@react-navigation/core/lib/typescript/src/index.d.ts ++++ b/node_modules/@react-navigation/core/lib/typescript/src/index.d.ts +@@ -17,7 +17,7 @@ export * from './types'; + export { default as useFocusEffect } from './useFocusEffect'; + export { default as useIsFocused } from './useIsFocused'; + export { default as useNavigation } from './useNavigation'; +-export { default as useNavigationBuilder } from './useNavigationBuilder'; ++export { NavigationBuilderOptions, default as useNavigationBuilder, } from './useNavigationBuilder'; + export { default as useNavigationContainerRef } from './useNavigationContainerRef'; + export { default as useNavigationState } from './useNavigationState'; + export { default as UNSTABLE_usePreventRemove } from './usePreventRemove'; +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/index.d.ts.map b/node_modules/@react-navigation/core/lib/typescript/src/index.d.ts.map +index 366138e..b8b7de5 100644 +--- a/node_modules/@react-navigation/core/lib/typescript/src/index.d.ts.map ++++ b/node_modules/@react-navigation/core/lib/typescript/src/index.d.ts.map +@@ -1 +1 @@ +-{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AACzF,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AACzF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAC3F,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACnF,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,cAAc,2BAA2B,CAAC"} +\ No newline at end of file ++{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AACzF,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AACzF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAC3F,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EACL,wBAAwB,EACxB,OAAO,IAAI,oBAAoB,GAChC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACnF,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,cAAc,2BAA2B,CAAC"} +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/types.d.ts b/node_modules/@react-navigation/core/lib/typescript/src/types.d.ts +index fcd456b..f0b0bdb 100644 +--- a/node_modules/@react-navigation/core/lib/typescript/src/types.d.ts ++++ b/node_modules/@react-navigation/core/lib/typescript/src/types.d.ts +@@ -7,7 +7,20 @@ declare global { + } + } + type Keyof = Extract; +-export type DefaultNavigatorOptions = DefaultRouterOptions> & { ++export type ScreenListenersOrCallback = ScreenListeners | ((props: { ++ route: RouteProp; ++ navigation: any; ++}) => ScreenListeners); ++export type ScreenOptionsOrCallback = ScreenOptions | ((props: { ++ route: RouteProp; ++ navigation: any; ++}) => ScreenOptions); ++export type DefaultScreenOptionsOrCallback = ScreenOptions | ((props: { ++ route: RouteProp; ++ navigation: any; ++ options: ScreenOptions; ++}) => ScreenOptions); ++export type DefaultNavigatorOptions = DefaultRouterOptions> & { + /** + * Optional ID for the navigator. Can be used with `navigation.getParent(id)` to refer to a parent. + */ +@@ -20,17 +33,11 @@ export type DefaultNavigatorOptions | ((props: { +- route: RouteProp; +- navigation: any; +- }) => ScreenListeners); ++ screenListeners?: ScreenListenersOrCallback; + /** + * Default options for all screens under this navigator. + */ +- screenOptions?: ScreenOptions | ((props: { +- route: RouteProp; +- navigation: any; +- }) => ScreenOptions); ++ screenOptions?: ScreenOptionsOrCallback; + }; + export type EventMapBase = Record = (options: ScreenOptionsOrCallback | undefined) => ScreenOptionsOrCallback | undefined; + export type RouteConfig = { + /** + * Optional key for this screen. This doesn't need to be unique. +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/types.d.ts.map b/node_modules/@react-navigation/core/lib/typescript/src/types.d.ts.map +index 6594ef4..f6c839d 100644 +--- a/node_modules/@react-navigation/core/lib/typescript/src/types.d.ts.map ++++ b/node_modules/@react-navigation/core/lib/typescript/src/types.d.ts.map +@@ -1 +1 @@ +-{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.tsx"],"names":[],"mappings":"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"} +\ No newline at end of file ++{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.tsx"],"names":[],"mappings":"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"} +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/useDescriptors.d.ts b/node_modules/@react-navigation/core/lib/typescript/src/useDescriptors.d.ts +index b0f331a..195ea3c 100644 +--- a/node_modules/@react-navigation/core/lib/typescript/src/useDescriptors.d.ts ++++ b/node_modules/@react-navigation/core/lib/typescript/src/useDescriptors.d.ts +@@ -1,26 +1,18 @@ + import type { NavigationAction, NavigationState, ParamListBase, Router } from '@react-navigation/routers'; + import { AddKeyedListener, AddListener } from './NavigationBuilderContext'; +-import type { Descriptor, EventMapBase, NavigationHelpers, NavigationProp, RouteConfig, RouteProp } from './types'; ++import type { ConvertCustomScreenOptions, DefaultScreenOptionsOrCallback, Descriptor, EventMapBase, NavigationHelpers, NavigationProp, RouteConfig, RouteProp, ScreenOptionsOrCallback } from './types'; + import type { NavigationEventEmitter } from './useEventEmitter'; + export type ScreenConfigWithParent = { + keys: (string | undefined)[]; + options: (ScreenOptionsOrCallback | undefined)[] | undefined; + props: RouteConfig; + }; +-type ScreenOptionsOrCallback = ScreenOptions | ((props: { +- route: RouteProp; +- navigation: any; +-}) => ScreenOptions); +-type Options = { ++type Options = { + state: State; +- screens: Record>; ++ screens: Record>; + navigation: NavigationHelpers; +- screenOptions?: ScreenOptionsOrCallback; +- defaultScreenOptions?: ScreenOptions | ((props: { +- route: RouteProp; +- navigation: any; +- options: ScreenOptions; +- }) => ScreenOptions); ++ screenOptions?: ScreenOptionsOrCallback; ++ defaultScreenOptions?: DefaultScreenOptionsOrCallback; + onAction: (action: NavigationAction) => boolean; + getState: () => State; + setState: (state: State) => void; +@@ -37,8 +29,10 @@ type Options void>, ScreenOptions extends {}, EventMap extends EventMapBase>({ state, screens, navigation, screenOptions, defaultScreenOptions, onAction, getState, setState, addListener, addKeyedListener, onRouteFocus, router, emitter, }: Options): Record void>, ScreenOptions extends {}, EventMap extends EventMapBase, CustomScreenOptions extends {} = ScreenOptions>({ state, screens, navigation, screenOptions, defaultScreenOptions, onAction, getState, setState, addListener, addKeyedListener, onRouteFocus, router, emitter, }: Options, convertCustomScreenOptions: ConvertCustomScreenOptions | undefined): Record = { ++import { ConvertCustomScreenOptions, DefaultNavigatorOptions, DefaultScreenOptionsOrCallback, EventMapCore, PrivateValueStore } from './types'; ++export type NavigationBuilderOptions = { + /** + * Default options specified by the navigator. + * It receives the custom options in the arguments if a function is specified. + */ +- defaultScreenOptions?: ScreenOptions | ((props: { +- route: RouteProp; +- navigation: any; +- options: ScreenOptions; +- }) => ScreenOptions); ++ defaultScreenOptions?: DefaultScreenOptionsOrCallback; + }; + /** + * Hook for building navigators. + * + * @param createRouter Factory method which returns router object. + * @param options Options object containing `children` and additional options for the router. ++ * @param convertCustomScreenOptions Function to convert custom screen options to screen options. ++ * If passed, it means that the `options`/`screenOptions` passed to the navigator are custom and need to be converted to regular screen options. + * @returns An object containing `state`, `navigation`, `descriptors` objects. + */ +-export default function useNavigationBuilder void>, ScreenOptions extends {}, EventMap extends Record>(createRouter: RouterFactory, options: DefaultNavigatorOptions & NavigationBuilderOptions & RouterOptions): { ++export default function useNavigationBuilder void>, ScreenOptions extends {}, EventMap extends Record, CustomScreenOptions extends {} = ScreenOptions>(createRouter: RouterFactory, options: DefaultNavigatorOptions & NavigationBuilderOptions & RouterOptions, convertCustomScreenOptions?: ConvertCustomScreenOptions): { + state: State; + navigation: { + dispatch(action: Readonly<{ +@@ -168,10 +166,9 @@ export default function useNavigationBuilder, {}, {}> | undefined>(id?: string | undefined): T_1; + setParams(params: Partial): void; + setOptions(options: Partial): void; +- } & import("./types").EventConsumer> & PrivateValueStore<[ParamListBase, string, EventMap]> & ActionHelpers, RouteProp>>; ++ } & import("./types").EventConsumer> & PrivateValueStore<[ParamListBase, string, EventMap]> & ActionHelpers, import("./types").RouteProp>>; + NavigationContent: ({ children }: { + children: React.ReactNode; + }) => JSX.Element; + }; +-export {}; + //# sourceMappingURL=useNavigationBuilder.d.ts.map +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/useNavigationBuilder.d.ts.map b/node_modules/@react-navigation/core/lib/typescript/src/useNavigationBuilder.d.ts.map +index 33762f4..9800d08 100644 +--- a/node_modules/@react-navigation/core/lib/typescript/src/useNavigationBuilder.d.ts.map ++++ b/node_modules/@react-navigation/core/lib/typescript/src/useNavigationBuilder.d.ts.map +@@ -1 +1 @@ +-{"version":3,"file":"useNavigationBuilder.d.ts","sourceRoot":"","sources":["../../../src/useNavigationBuilder.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,oBAAoB,EAEpB,eAAe,EACf,aAAa,EACb,YAAY,EAIZ,aAAa,EACd,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,OAAO,EACL,uBAAuB,EAEvB,YAAY,EAEZ,iBAAiB,EAEjB,SAAS,EACV,MAAM,SAAS,CAAC;AAoBjB,KAAK,wBAAwB,CAAC,aAAa,SAAS,EAAE,IAAI;IACxD;;;OAGG;IACH,oBAAoB,CAAC,EACjB,aAAa,GACb,CAAC,CAAC,KAAK,EAAE;QACP,KAAK,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;QAChC,UAAU,EAAE,GAAG,CAAC;QAChB,OAAO,EAAE,aAAa,CAAC;KACxB,KAAK,aAAa,CAAC,CAAC;CAC1B,CAAC;AAwLF;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAC1C,KAAK,SAAS,eAAe,EAC7B,aAAa,SAAS,oBAAoB,EAC1C,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,EAChD,aAAa,SAAS,EAAE,EACxB,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAEpC,YAAY,EAAE,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,aAAa,CAAC,EACtD,OAAO,EAAE,uBAAuB,CAC9B,aAAa,EACb,KAAK,EACL,aAAa,EACb,QAAQ,CACT,GACC,wBAAwB,CAAC,aAAa,CAAC,GACvC,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0chB"} +\ No newline at end of file ++{"version":3,"file":"useNavigationBuilder.d.ts","sourceRoot":"","sources":["../../../src/useNavigationBuilder.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,oBAAoB,EAEpB,eAAe,EACf,aAAa,EACb,YAAY,EAIZ,aAAa,EACd,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,8BAA8B,EAE9B,YAAY,EAEZ,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAoBjB,MAAM,MAAM,wBAAwB,CAAC,aAAa,SAAS,EAAE,IAAI;IAC/D;;;OAGG;IACH,oBAAoB,CAAC,EAAE,8BAA8B,CAAC,aAAa,CAAC,CAAC;CACtE,CAAC;AA4LF;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAC1C,KAAK,SAAS,eAAe,EAC7B,aAAa,SAAS,oBAAoB,EAC1C,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,EAChD,aAAa,SAAS,EAAE,EACxB,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACpC,mBAAmB,SAAS,EAAE,GAAG,aAAa,EAE9C,YAAY,EAAE,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,aAAa,CAAC,EACtD,OAAO,EAAE,uBAAuB,CAC9B,aAAa,EACb,KAAK,EACL,aAAa,GAAG,mBAAmB,EACnC,QAAQ,CACT,GACC,wBAAwB,CAAC,aAAa,GAAG,mBAAmB,CAAC,GAC7D,aAAa,EACf,0BAA0B,CAAC,EAAE,0BAA0B,CACrD,mBAAmB,EACnB,aAAa,CACd;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgdF"} +\ No newline at end of file +diff --git a/node_modules/@react-navigation/core/src/index.tsx b/node_modules/@react-navigation/core/src/index.tsx +index 61706b6..9db0c9d 100644 +--- a/node_modules/@react-navigation/core/src/index.tsx ++++ b/node_modules/@react-navigation/core/src/index.tsx +@@ -17,7 +17,10 @@ export * from './types'; + export { default as useFocusEffect } from './useFocusEffect'; + export { default as useIsFocused } from './useIsFocused'; + export { default as useNavigation } from './useNavigation'; +-export { default as useNavigationBuilder } from './useNavigationBuilder'; ++export { ++ NavigationBuilderOptions, ++ default as useNavigationBuilder, ++} from './useNavigationBuilder'; + export { default as useNavigationContainerRef } from './useNavigationContainerRef'; + export { default as useNavigationState } from './useNavigationState'; + export { default as UNSTABLE_usePreventRemove } from './usePreventRemove'; +diff --git a/node_modules/@react-navigation/core/src/types.tsx b/node_modules/@react-navigation/core/src/types.tsx +index b691d75..e9b8ea4 100644 +--- a/node_modules/@react-navigation/core/src/types.tsx ++++ b/node_modules/@react-navigation/core/src/types.tsx +@@ -19,11 +19,47 @@ declare global { + + type Keyof = Extract; + ++export type ScreenListenersOrCallback< ++ State extends NavigationState, ++ EventMap extends EventMapBase, ++ ParamList extends ParamListBase = ParamListBase, ++ RouteName extends keyof ParamList = keyof ParamList ++> = ++ | ScreenListeners ++ | ((props: { ++ route: RouteProp; ++ navigation: any; ++ }) => ScreenListeners); ++ ++export type ScreenOptionsOrCallback< ++ ScreenOptions extends {}, ++ ParamList extends ParamListBase = ParamListBase, ++ RouteName extends keyof ParamList = keyof ParamList ++> = ++ | ScreenOptions ++ | ((props: { ++ route: RouteProp; ++ navigation: any; ++ }) => ScreenOptions); ++ ++export type DefaultScreenOptionsOrCallback< ++ ScreenOptions extends {}, ++ ParamList extends ParamListBase = ParamListBase, ++ RouteName extends keyof ParamList = keyof ParamList ++> = ++ | ScreenOptions ++ | ((props: { ++ route: RouteProp; ++ navigation: any; ++ options: ScreenOptions; ++ }) => ScreenOptions); ++ + export type DefaultNavigatorOptions< + ParamList extends ParamListBase, + State extends NavigationState, + ScreenOptions extends {}, +- EventMap extends EventMapBase ++ EventMap extends EventMapBase, ++ RouteName extends keyof ParamList = keyof ParamList + > = DefaultRouterOptions> & { + /** + * Optional ID for the navigator. Can be used with `navigation.getParent(id)` to refer to a parent. +@@ -37,21 +73,16 @@ export type DefaultNavigatorOptions< + /** + * Event listeners for all the screens in the navigator. + */ +- screenListeners?: +- | ScreenListeners +- | ((props: { +- route: RouteProp; +- navigation: any; +- }) => ScreenListeners); ++ screenListeners?: ScreenListenersOrCallback< ++ State, ++ EventMap, ++ ParamList, ++ RouteName ++ >; + /** + * Default options for all screens under this navigator. + */ +- screenOptions?: +- | ScreenOptions +- | ((props: { +- route: RouteProp; +- navigation: any; +- }) => ScreenOptions); ++ screenOptions?: ScreenOptionsOrCallback; + }; + + export type EventMapBase = Record< +@@ -482,6 +513,13 @@ export type RouteConfigComponent< + getComponent?: never; + }; + ++export type ConvertCustomScreenOptions< ++ CustomScreenOptions extends {}, ++ ScreenOptions extends {} ++> = ( ++ options: ScreenOptionsOrCallback | undefined ++) => ScreenOptionsOrCallback | undefined; ++ + export type RouteConfig< + ParamList extends ParamListBase, + RouteName extends keyof ParamList, +diff --git a/node_modules/@react-navigation/core/src/useDescriptors.tsx b/node_modules/@react-navigation/core/src/useDescriptors.tsx +index d5a192c..2e4ee0f 100644 +--- a/node_modules/@react-navigation/core/src/useDescriptors.tsx ++++ b/node_modules/@react-navigation/core/src/useDescriptors.tsx +@@ -14,12 +14,15 @@ import NavigationContext from './NavigationContext'; + import NavigationRouteContext from './NavigationRouteContext'; + import SceneView from './SceneView'; + import type { ++ ConvertCustomScreenOptions, ++ DefaultScreenOptionsOrCallback, + Descriptor, + EventMapBase, + NavigationHelpers, + NavigationProp, + RouteConfig, + RouteProp, ++ ScreenOptionsOrCallback, + } from './types'; + import type { NavigationEventEmitter } from './useEventEmitter'; + import useNavigationCache from './useNavigationCache'; +@@ -35,32 +38,22 @@ export type ScreenConfigWithParent< + props: RouteConfig; + }; + +-type ScreenOptionsOrCallback = +- | ScreenOptions +- | ((props: { +- route: RouteProp; +- navigation: any; +- }) => ScreenOptions); +- + type Options< + State extends NavigationState, + ScreenOptions extends {}, +- EventMap extends EventMapBase ++ EventMap extends EventMapBase, ++ CustomScreenOptions extends {} = ScreenOptions + > = { + state: State; + screens: Record< + string, +- ScreenConfigWithParent ++ ScreenConfigWithParent + >; + navigation: NavigationHelpers; +- screenOptions?: ScreenOptionsOrCallback; +- defaultScreenOptions?: +- | ScreenOptions +- | ((props: { +- route: RouteProp; +- navigation: any; +- options: ScreenOptions; +- }) => ScreenOptions); ++ screenOptions?: ScreenOptionsOrCallback; ++ defaultScreenOptions?: DefaultScreenOptionsOrCallback< ++ ScreenOptions | CustomScreenOptions ++ >; + onAction: (action: NavigationAction) => boolean; + getState: () => State; + setState: (state: State) => void; +@@ -78,27 +71,35 @@ type Options< + * - Helper method to render a screen + * - Options specified by the screen for the navigator + * - Navigation object intended for the route ++ * @param convertCustomScreenOptions Function to convert custom screen options to screen options. ++ * If passed, it means that the `options`/`screenOptions` passed to the navigator are custom and need to be converted to regular screen options. + */ + export default function useDescriptors< + State extends NavigationState, + ActionHelpers extends Record void>, + ScreenOptions extends {}, +- EventMap extends EventMapBase +->({ +- state, +- screens, +- navigation, +- screenOptions, +- defaultScreenOptions, +- onAction, +- getState, +- setState, +- addListener, +- addKeyedListener, +- onRouteFocus, +- router, +- emitter, +-}: Options) { ++ EventMap extends EventMapBase, ++ CustomScreenOptions extends {} = ScreenOptions ++>( ++ { ++ state, ++ screens, ++ navigation, ++ screenOptions, ++ defaultScreenOptions, ++ onAction, ++ getState, ++ setState, ++ addListener, ++ addKeyedListener, ++ onRouteFocus, ++ router, ++ emitter, ++ }: Options, ++ convertCustomScreenOptions: ++ | ConvertCustomScreenOptions ++ | undefined ++) { + const [options, setOptions] = React.useState>({}); + const { onDispatchAction, onOptionsChange, stackRef } = React.useContext( + NavigationBuilderContext +@@ -160,18 +161,42 @@ export default function useDescriptors< + const screen = config.props; + const navigation = navigations[route.key]; + +- const optionsList = [ +- // The default `screenOptions` passed to the navigator +- screenOptions, +- // The `screenOptions` props passed to `Group` elements +- ...((config.options +- ? config.options.filter(Boolean) +- : []) as ScreenOptionsOrCallback[]), +- // The `options` prop passed to `Screen` elements, +- screen.options, +- // The options set via `navigation.setOptions` +- options[route.key], +- ]; ++ let optionsList: (ScreenOptionsOrCallback | undefined)[]; ++ if (convertCustomScreenOptions) { ++ optionsList = [ ++ // The default `screenOptions` passed to the navigator ++ convertCustomScreenOptions( ++ screenOptions as ScreenOptionsOrCallback ++ ), ++ // The `screenOptions` props passed to `Group` elements ++ ...((config.options ++ ? (config.options as ScreenOptionsOrCallback[]) ++ .filter(Boolean) ++ .map(convertCustomScreenOptions) ++ : []) as ScreenOptionsOrCallback[]), ++ // The `options` prop passed to `Screen` elements, ++ convertCustomScreenOptions( ++ screen.options as ScreenOptionsOrCallback ++ ), ++ // The options set via `navigation.setOptions` ++ convertCustomScreenOptions( ++ options[route.key] as ScreenOptionsOrCallback ++ ), ++ ]; ++ } else { ++ optionsList = [ ++ // The default `screenOptions` passed to the navigator ++ screenOptions as ScreenOptionsOrCallback, ++ // The `screenOptions` props passed to `Group` elements ++ ...((config.options ++ ? config.options.filter(Boolean) ++ : []) as ScreenOptionsOrCallback[]), ++ // The `options` prop passed to `Screen` elements, ++ screen.options as ScreenOptionsOrCallback, ++ // The options set via `navigation.setOptions` ++ options[route.key] as ScreenOptionsOrCallback, ++ ]; ++ } + + const customOptions = optionsList.reduce( + (acc, curr) => +@@ -183,15 +208,22 @@ export default function useDescriptors< + {} as ScreenOptions + ); + ++ const customDefaultScreenOptions = ++ convertCustomScreenOptions?.( ++ defaultScreenOptions as ScreenOptionsOrCallback ++ ) ?? defaultScreenOptions; ++ + const mergedOptions = { + ...(typeof defaultScreenOptions === 'function' +- ? // @ts-expect-error: ts gives incorrect error here ++ ? // In Expensify's PlatformStackNavigation we don't allow a callback function for `defaultScreenOptions`, ++ // therefore we don't need to convert any custom default options when it's a function. ++ // @ts-expect-error: ts gives incorrect error here + defaultScreenOptions({ + route, + navigation, + options: customOptions, + }) +- : defaultScreenOptions), ++ : customDefaultScreenOptions), + ...customOptions, + }; + +diff --git a/node_modules/@react-navigation/core/src/useNavigationBuilder.tsx b/node_modules/@react-navigation/core/src/useNavigationBuilder.tsx +index 7d550e0..2bcf288 100644 +--- a/node_modules/@react-navigation/core/src/useNavigationBuilder.tsx ++++ b/node_modules/@react-navigation/core/src/useNavigationBuilder.tsx +@@ -22,13 +22,13 @@ import NavigationStateContext from './NavigationStateContext'; + import PreventRemoveProvider from './PreventRemoveProvider'; + import Screen from './Screen'; + import { ++ ConvertCustomScreenOptions, + DefaultNavigatorOptions, ++ DefaultScreenOptionsOrCallback, + EventMapBase, + EventMapCore, + NavigatorScreenParams, + PrivateValueStore, +- RouteConfig, +- RouteProp, + } from './types'; + import useChildListeners from './useChildListeners'; + import useComponent from './useComponent'; +@@ -49,18 +49,12 @@ import useScheduleUpdate from './useScheduleUpdate'; + // eslint-disable-next-line babel/no-unused-expressions + PrivateValueStore; + +-type NavigationBuilderOptions = { ++export type NavigationBuilderOptions = { + /** + * Default options specified by the navigator. + * It receives the custom options in the arguments if a function is specified. + */ +- defaultScreenOptions?: +- | ScreenOptions +- | ((props: { +- route: RouteProp; +- navigation: any; +- options: ScreenOptions; +- }) => ScreenOptions); ++ defaultScreenOptions?: DefaultScreenOptionsOrCallback; + }; + + type NavigatorRoute = { +@@ -79,18 +73,23 @@ const isValidKey = (key: unknown) => + const getRouteConfigsFromChildren = < + State extends NavigationState, + ScreenOptions extends {}, +- EventMap extends EventMapBase ++ EventMap extends EventMapBase, ++ CustomScreenOptions extends {} = ScreenOptions + >( + children: React.ReactNode, + groupKey?: string, + groupOptions?: ScreenConfigWithParent< + State, +- ScreenOptions, ++ ScreenOptions | CustomScreenOptions, + EventMap + >['options'] + ) => { + const configs = React.Children.toArray(children).reduce< +- ScreenConfigWithParent[] ++ ScreenConfigWithParent< ++ State, ++ ScreenOptions | CustomScreenOptions, ++ EventMap ++ >[] + >((acc, child) => { + if (React.isValidElement(child)) { + if (child.type === Screen) { +@@ -110,13 +109,7 @@ const getRouteConfigsFromChildren = < + acc.push({ + keys: [groupKey, child.props.navigationKey], + options: groupOptions, +- props: child.props as RouteConfig< +- ParamListBase, +- string, +- State, +- ScreenOptions, +- EventMap +- >, ++ props: child.props, + }); + return acc; + } +@@ -133,7 +126,12 @@ const getRouteConfigsFromChildren = < + // When we encounter a fragment or group, we need to dive into its children to extract the configs + // This is handy to conditionally define a group of screens + acc.push( +- ...getRouteConfigsFromChildren( ++ ...getRouteConfigsFromChildren< ++ State, ++ ScreenOptions | CustomScreenOptions, ++ EventMap, ++ CustomScreenOptions ++ >( + child.props.children, + child.props.navigationKey, + child.type !== Group +@@ -250,6 +248,8 @@ const getRouteConfigsFromChildren = < + * + * @param createRouter Factory method which returns router object. + * @param options Options object containing `children` and additional options for the router. ++ * @param convertCustomScreenOptions Function to convert custom screen options to screen options. ++ * If passed, it means that the `options`/`screenOptions` passed to the navigator are custom and need to be converted to regular screen options. + * @returns An object containing `state`, `navigation`, `descriptors` objects. + */ + export default function useNavigationBuilder< +@@ -257,17 +257,22 @@ export default function useNavigationBuilder< + RouterOptions extends DefaultRouterOptions, + ActionHelpers extends Record void>, + ScreenOptions extends {}, +- EventMap extends Record ++ EventMap extends Record, ++ CustomScreenOptions extends {} = ScreenOptions + >( + createRouter: RouterFactory, + options: DefaultNavigatorOptions< + ParamListBase, + State, +- ScreenOptions, ++ ScreenOptions | CustomScreenOptions, + EventMap + > & +- NavigationBuilderOptions & +- RouterOptions ++ NavigationBuilderOptions & ++ RouterOptions, ++ convertCustomScreenOptions?: ConvertCustomScreenOptions< ++ CustomScreenOptions, ++ ScreenOptions ++ > + ) { + const navigatorKey = useRegisterNavigator(); + +@@ -291,11 +296,19 @@ export default function useNavigationBuilder< + const routeConfigs = getRouteConfigsFromChildren< + State, + ScreenOptions, +- EventMap ++ EventMap, ++ CustomScreenOptions + >(children); + + const screens = routeConfigs.reduce< +- Record> ++ Record< ++ string, ++ ScreenConfigWithParent< ++ State, ++ ScreenOptions | CustomScreenOptions, ++ EventMap ++ > ++ > + >((acc, config) => { + if (config.props.name in acc) { + throw new Error( +@@ -683,23 +696,27 @@ export default function useNavigationBuilder< + State, + ActionHelpers, + ScreenOptions, +- EventMap +- >({ +- state, +- screens, +- navigation, +- screenOptions: options.screenOptions, +- defaultScreenOptions: options.defaultScreenOptions, +- onAction, +- getState, +- setState, +- onRouteFocus, +- addListener, +- addKeyedListener, +- router, +- // @ts-expect-error: this should have both core and custom events, but too much work right now +- emitter, +- }); ++ EventMap, ++ CustomScreenOptions ++ >( ++ { ++ state, ++ screens, ++ navigation, ++ screenOptions: options.screenOptions, ++ defaultScreenOptions: options.defaultScreenOptions, ++ onAction, ++ getState, ++ setState, ++ onRouteFocus, ++ addListener, ++ addKeyedListener, ++ router, ++ // @ts-expect-error: this should have both core and custom events, but too much work right now ++ emitter, ++ }, ++ convertCustomScreenOptions ++ ); + + useCurrentRender({ + state, diff --git a/patches/@react-navigation+native-stack+6.9.26+001+keyboardHandlingEnabled-prop.patch b/patches/@react-navigation+native-stack+6.9.26+001+keyboardHandlingEnabled-prop.patch new file mode 100644 index 000000000000..b09d13373528 --- /dev/null +++ b/patches/@react-navigation+native-stack+6.9.26+001+keyboardHandlingEnabled-prop.patch @@ -0,0 +1,157 @@ +diff --git a/node_modules/@react-navigation/native-stack/lib/commonjs/views/NativeStackView.native.js b/node_modules/@react-navigation/native-stack/lib/commonjs/views/NativeStackView.native.js +index 2d5f921..997e384 100644 +--- a/node_modules/@react-navigation/native-stack/lib/commonjs/views/NativeStackView.native.js ++++ b/node_modules/@react-navigation/native-stack/lib/commonjs/views/NativeStackView.native.js +@@ -103,7 +103,8 @@ const SceneView = _ref2 => { + statusBarStyle, + statusBarTranslucent, + statusBarColor, +- freezeOnBlur ++ freezeOnBlur, ++ keyboardHandlingEnabled + } = options; + let { + animation, +@@ -205,7 +206,8 @@ const SceneView = _ref2 => { + onNativeDismissCancelled: onNativeDismissCancelled + // this prop is available since rn-screens 3.16 + , +- freezeOnBlur: freezeOnBlur ++ freezeOnBlur: freezeOnBlur, ++ hideKeyboardOnSwipe: keyboardHandlingEnabled + }, /*#__PURE__*/React.createElement(_native.NavigationContext.Provider, { + value: navigation + }, /*#__PURE__*/React.createElement(_native.NavigationRouteContext.Provider, { +diff --git a/node_modules/@react-navigation/native-stack/lib/commonjs/views/NativeStackView.native.js.map b/node_modules/@react-navigation/native-stack/lib/commonjs/views/NativeStackView.native.js.map +index bacb290..1eb6dc4 100644 +--- a/node_modules/@react-navigation/native-stack/lib/commonjs/views/NativeStackView.native.js.map ++++ b/node_modules/@react-navigation/native-stack/lib/commonjs/views/NativeStackView.native.js.map +@@ -1 +1 @@ +-{"version":3,"names":["isAndroid","Platform","OS","MaybeNestedStack","options","route","presentation","headerHeight","headerTopInsetEnabled","children","colors","useTheme","header","headerShown","contentStyle","isHeaderInModal","undefined","headerShownPreviousRef","React","useRef","useEffect","warnOnce","current","name","content","styles","container","backgroundColor","background","StyleSheet","absoluteFill","SceneView","index","focused","descriptor","previousDescriptor","nextDescriptor","onWillDisappear","onAppear","onDisappear","onDismissed","onHeaderBackButtonClicked","onNativeDismissCancelled","navigation","render","animationDuration","animationTypeForReplace","gestureEnabled","headerBackButtonMenuEnabled","headerBackground","headerTransparent","autoHideHomeIndicator","navigationBarColor","navigationBarHidden","orientation","statusBarAnimation","statusBarHidden","statusBarStyle","statusBarTranslucent","statusBarColor","freezeOnBlur","animation","customAnimationOnGesture","fullScreenGestureEnabled","gestureDirection","nextGestureDirection","gestureDirectionOverride","insets","useSafeAreaInsets","frame","useSafeAreaFrame","isModal","isIPhone","isPad","isTV","isLandscape","width","height","isParentHeaderShown","useContext","HeaderShownContext","parentHeaderHeight","HeaderHeightContext","parentHeaderBack","HeaderBackContext","topInset","top","hasDynamicIsland","statusBarHeight","preventedRoutes","usePreventRemoveContext","defaultHeaderHeight","getDefaultHeaderHeight","customHeaderHeight","setCustomHeaderHeight","useState","headerBack","title","getHeaderTitle","isRemovePrevented","key","preventRemove","translucent","scene","e","nativeEvent","layout","absolute","back","headerBackTitle","NativeStackViewInner","state","descriptors","setNextDismissedKey","useDismissedRouteError","useInvalidPreventRemoveError","routes","map","isFocused","previousKey","nextKey","emit","type","data","closing","target","event","dispatch","StackActions","pop","dismissCount","source","NativeStackView","props","create","flex","flexDirection","position","left","right","zIndex","elevation","overflow"],"sourceRoot":"../../../src","sources":["views/NativeStackView.native.tsx"],"mappings":"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"} +\ No newline at end of file ++{"version":3,"names":["isAndroid","Platform","OS","MaybeNestedStack","options","route","presentation","headerHeight","headerTopInsetEnabled","children","colors","useTheme","header","headerShown","contentStyle","isHeaderInModal","undefined","headerShownPreviousRef","React","useRef","useEffect","warnOnce","current","name","content","styles","container","backgroundColor","background","StyleSheet","absoluteFill","SceneView","index","focused","descriptor","previousDescriptor","nextDescriptor","onWillDisappear","onAppear","onDisappear","onDismissed","onHeaderBackButtonClicked","onNativeDismissCancelled","navigation","render","animationDuration","animationTypeForReplace","gestureEnabled","headerBackButtonMenuEnabled","headerBackground","headerTransparent","autoHideHomeIndicator","navigationBarColor","navigationBarHidden","orientation","statusBarAnimation","statusBarHidden","statusBarStyle","statusBarTranslucent","statusBarColor","freezeOnBlur","keyboardHandlingEnabled","animation","customAnimationOnGesture","fullScreenGestureEnabled","gestureDirection","nextGestureDirection","gestureDirectionOverride","insets","useSafeAreaInsets","frame","useSafeAreaFrame","isModal","isIPhone","isPad","isTV","isLandscape","width","height","isParentHeaderShown","useContext","HeaderShownContext","parentHeaderHeight","HeaderHeightContext","parentHeaderBack","HeaderBackContext","topInset","top","hasDynamicIsland","statusBarHeight","preventedRoutes","usePreventRemoveContext","defaultHeaderHeight","getDefaultHeaderHeight","customHeaderHeight","setCustomHeaderHeight","useState","headerBack","title","getHeaderTitle","isRemovePrevented","key","preventRemove","translucent","scene","e","nativeEvent","layout","absolute","back","headerBackTitle","NativeStackViewInner","state","descriptors","setNextDismissedKey","useDismissedRouteError","useInvalidPreventRemoveError","routes","map","isFocused","previousKey","nextKey","emit","type","data","closing","target","event","dispatch","StackActions","pop","dismissCount","source","NativeStackView","props","create","flex","flexDirection","position","left","right","zIndex","elevation","overflow"],"sourceRoot":"../../../src","sources":["views/NativeStackView.native.tsx"],"mappings":"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"} +\ No newline at end of file +diff --git a/node_modules/@react-navigation/native-stack/lib/module/views/NativeStackView.native.js b/node_modules/@react-navigation/native-stack/lib/module/views/NativeStackView.native.js +index 06439fe..cbdd502 100644 +--- a/node_modules/@react-navigation/native-stack/lib/module/views/NativeStackView.native.js ++++ b/node_modules/@react-navigation/native-stack/lib/module/views/NativeStackView.native.js +@@ -94,7 +94,8 @@ const SceneView = _ref2 => { + statusBarStyle, + statusBarTranslucent, + statusBarColor, +- freezeOnBlur ++ freezeOnBlur, ++ keyboardHandlingEnabled + } = options; + let { + animation, +@@ -196,7 +197,8 @@ const SceneView = _ref2 => { + onNativeDismissCancelled: onNativeDismissCancelled + // this prop is available since rn-screens 3.16 + , +- freezeOnBlur: freezeOnBlur ++ freezeOnBlur: freezeOnBlur, ++ hideKeyboardOnSwipe: keyboardHandlingEnabled + }, /*#__PURE__*/React.createElement(NavigationContext.Provider, { + value: navigation + }, /*#__PURE__*/React.createElement(NavigationRouteContext.Provider, { +diff --git a/node_modules/@react-navigation/native-stack/lib/module/views/NativeStackView.native.js.map b/node_modules/@react-navigation/native-stack/lib/module/views/NativeStackView.native.js.map +index c0ec5e4..2b113bb 100644 +--- a/node_modules/@react-navigation/native-stack/lib/module/views/NativeStackView.native.js.map ++++ b/node_modules/@react-navigation/native-stack/lib/module/views/NativeStackView.native.js.map +@@ -1 +1 @@ +-{"version":3,"names":["getDefaultHeaderHeight","getHeaderTitle","HeaderBackContext","HeaderHeightContext","HeaderShownContext","SafeAreaProviderCompat","NavigationContext","NavigationRouteContext","StackActions","usePreventRemoveContext","useTheme","React","Platform","StyleSheet","View","useSafeAreaFrame","useSafeAreaInsets","Screen","ScreenStack","warnOnce","useDismissedRouteError","useInvalidPreventRemoveError","DebugContainer","HeaderConfig","isAndroid","OS","MaybeNestedStack","options","route","presentation","headerHeight","headerTopInsetEnabled","children","colors","header","headerShown","contentStyle","isHeaderInModal","undefined","headerShownPreviousRef","useRef","useEffect","current","name","content","styles","container","backgroundColor","background","absoluteFill","SceneView","index","focused","descriptor","previousDescriptor","nextDescriptor","onWillDisappear","onAppear","onDisappear","onDismissed","onHeaderBackButtonClicked","onNativeDismissCancelled","navigation","render","animationDuration","animationTypeForReplace","gestureEnabled","headerBackButtonMenuEnabled","headerBackground","headerTransparent","autoHideHomeIndicator","navigationBarColor","navigationBarHidden","orientation","statusBarAnimation","statusBarHidden","statusBarStyle","statusBarTranslucent","statusBarColor","freezeOnBlur","animation","customAnimationOnGesture","fullScreenGestureEnabled","gestureDirection","nextGestureDirection","gestureDirectionOverride","insets","frame","isModal","isIPhone","isPad","isTV","isLandscape","width","height","isParentHeaderShown","useContext","parentHeaderHeight","parentHeaderBack","topInset","top","hasDynamicIsland","statusBarHeight","preventedRoutes","defaultHeaderHeight","customHeaderHeight","setCustomHeaderHeight","useState","headerBack","title","isRemovePrevented","key","preventRemove","translucent","scene","e","nativeEvent","layout","absolute","back","headerBackTitle","NativeStackViewInner","state","descriptors","setNextDismissedKey","routes","map","isFocused","previousKey","nextKey","emit","type","data","closing","target","event","dispatch","pop","dismissCount","source","NativeStackView","props","create","flex","flexDirection","position","left","right","zIndex","elevation","overflow"],"sourceRoot":"../../../src","sources":["views/NativeStackView.native.tsx"],"mappings":"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"} +\ No newline at end of file ++{"version":3,"names":["getDefaultHeaderHeight","getHeaderTitle","HeaderBackContext","HeaderHeightContext","HeaderShownContext","SafeAreaProviderCompat","NavigationContext","NavigationRouteContext","StackActions","usePreventRemoveContext","useTheme","React","Platform","StyleSheet","View","useSafeAreaFrame","useSafeAreaInsets","Screen","ScreenStack","warnOnce","useDismissedRouteError","useInvalidPreventRemoveError","DebugContainer","HeaderConfig","isAndroid","OS","MaybeNestedStack","options","route","presentation","headerHeight","headerTopInsetEnabled","children","colors","header","headerShown","contentStyle","isHeaderInModal","undefined","headerShownPreviousRef","useRef","useEffect","current","name","content","styles","container","backgroundColor","background","absoluteFill","SceneView","index","focused","descriptor","previousDescriptor","nextDescriptor","onWillDisappear","onAppear","onDisappear","onDismissed","onHeaderBackButtonClicked","onNativeDismissCancelled","navigation","render","animationDuration","animationTypeForReplace","gestureEnabled","headerBackButtonMenuEnabled","headerBackground","headerTransparent","autoHideHomeIndicator","navigationBarColor","navigationBarHidden","orientation","statusBarAnimation","statusBarHidden","statusBarStyle","statusBarTranslucent","statusBarColor","freezeOnBlur","keyboardHandlingEnabled","animation","customAnimationOnGesture","fullScreenGestureEnabled","gestureDirection","nextGestureDirection","gestureDirectionOverride","insets","frame","isModal","isIPhone","isPad","isTV","isLandscape","width","height","isParentHeaderShown","useContext","parentHeaderHeight","parentHeaderBack","topInset","top","hasDynamicIsland","statusBarHeight","preventedRoutes","defaultHeaderHeight","customHeaderHeight","setCustomHeaderHeight","useState","headerBack","title","isRemovePrevented","key","preventRemove","translucent","scene","e","nativeEvent","layout","absolute","back","headerBackTitle","NativeStackViewInner","state","descriptors","setNextDismissedKey","routes","map","isFocused","previousKey","nextKey","emit","type","data","closing","target","event","dispatch","pop","dismissCount","source","NativeStackView","props","create","flex","flexDirection","position","left","right","zIndex","elevation","overflow"],"sourceRoot":"../../../src","sources":["views/NativeStackView.native.tsx"],"mappings":"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"} +\ No newline at end of file +diff --git a/node_modules/@react-navigation/native-stack/lib/typescript/src/__tests__/index.test.d.ts b/node_modules/@react-navigation/native-stack/lib/typescript/src/__tests__/index.test.d.ts +new file mode 100644 +index 0000000..121d59b +--- /dev/null ++++ b/node_modules/@react-navigation/native-stack/lib/typescript/src/__tests__/index.test.d.ts +@@ -0,0 +1,2 @@ ++export {}; ++//# sourceMappingURL=index.test.d.ts.map +\ No newline at end of file +diff --git a/node_modules/@react-navigation/native-stack/lib/typescript/src/__tests__/index.test.d.ts.map b/node_modules/@react-navigation/native-stack/lib/typescript/src/__tests__/index.test.d.ts.map +new file mode 100644 +index 0000000..7b9421a +--- /dev/null ++++ b/node_modules/@react-navigation/native-stack/lib/typescript/src/__tests__/index.test.d.ts.map +@@ -0,0 +1 @@ ++{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/index.test.tsx"],"names":[],"mappings":""} +\ No newline at end of file +diff --git a/node_modules/@react-navigation/native-stack/lib/typescript/src/types.d.ts b/node_modules/@react-navigation/native-stack/lib/typescript/src/types.d.ts +index 3d74b14..d886b7b 100644 +--- a/node_modules/@react-navigation/native-stack/lib/typescript/src/types.d.ts ++++ b/node_modules/@react-navigation/native-stack/lib/typescript/src/types.d.ts +@@ -446,6 +446,12 @@ export type NativeStackNavigationOptions = { + * Only supported on iOS and Android. + */ + freezeOnBlur?: boolean; ++ /** ++ * Whether the keyboard should hide when swiping to the previous screen. Defaults to `false`. ++ * ++ * Only supported on iOS ++ */ ++ keyboardHandlingEnabled?: boolean; + }; + export type NativeStackNavigatorProps = DefaultNavigatorOptions, NativeStackNavigationOptions, NativeStackNavigationEventMap> & StackRouterOptions & NativeStackNavigationConfig; + export type NativeStackDescriptor = Descriptor, RouteProp>; +diff --git a/node_modules/@react-navigation/native-stack/lib/typescript/src/types.d.ts.map b/node_modules/@react-navigation/native-stack/lib/typescript/src/types.d.ts.map +index 39c4fd5..91f0d7a 100644 +--- a/node_modules/@react-navigation/native-stack/lib/typescript/src/types.d.ts.map ++++ b/node_modules/@react-navigation/native-stack/lib/typescript/src/types.d.ts.map +@@ -1 +1 @@ +-{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.tsx"],"names":[],"mappings":"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"} +\ No newline at end of file ++{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.tsx"],"names":[],"mappings":"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"} +\ No newline at end of file +diff --git a/node_modules/@react-navigation/native-stack/lib/typescript/src/views/NativeStackView.native.d.ts.map b/node_modules/@react-navigation/native-stack/lib/typescript/src/views/NativeStackView.native.d.ts.map +index faf125c..3cdaf10 100644 +--- a/node_modules/@react-navigation/native-stack/lib/typescript/src/views/NativeStackView.native.d.ts.map ++++ b/node_modules/@react-navigation/native-stack/lib/typescript/src/views/NativeStackView.native.d.ts.map +@@ -1 +1 @@ +-{"version":3,"file":"NativeStackView.native.d.ts","sourceRoot":"","sources":["../../../../src/views/NativeStackView.native.tsx"],"names":[],"mappings":"AAQA,OAAO,EAGL,aAAa,EAGb,oBAAoB,EAGrB,MAAM,0BAA0B,CAAC;AAelC,OAAO,KAAK,EAEV,wBAAwB,EACxB,4BAA4B,EAE7B,MAAM,UAAU,CAAC;AA+VlB,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,oBAAoB,CAAC,aAAa,CAAC,CAAC;IAC3C,UAAU,EAAE,4BAA4B,CAAC;IACzC,WAAW,EAAE,wBAAwB,CAAC;CACvC,CAAC;AA8EF,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,KAAK,EAAE,KAAK,eAMnD"} +\ No newline at end of file ++{"version":3,"file":"NativeStackView.native.d.ts","sourceRoot":"","sources":["../../../../src/views/NativeStackView.native.tsx"],"names":[],"mappings":"AAQA,OAAO,EAGL,aAAa,EAGb,oBAAoB,EAGrB,MAAM,0BAA0B,CAAC;AAelC,OAAO,KAAK,EAEV,wBAAwB,EACxB,4BAA4B,EAE7B,MAAM,UAAU,CAAC;AAiWlB,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,oBAAoB,CAAC,aAAa,CAAC,CAAC;IAC3C,UAAU,EAAE,4BAA4B,CAAC;IACzC,WAAW,EAAE,wBAAwB,CAAC;CACvC,CAAC;AA8EF,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,KAAK,EAAE,KAAK,eAMnD"} +\ No newline at end of file +diff --git a/node_modules/@react-navigation/native-stack/src/types.tsx b/node_modules/@react-navigation/native-stack/src/types.tsx +index 206fb0b..7a34a8e 100644 +--- a/node_modules/@react-navigation/native-stack/src/types.tsx ++++ b/node_modules/@react-navigation/native-stack/src/types.tsx +@@ -490,6 +490,14 @@ export type NativeStackNavigationOptions = { + * Only supported on iOS and Android. + */ + freezeOnBlur?: boolean; ++ // partial changes from https://github.com/react-navigation/react-navigation/commit/90cfbf23bcc5259f3262691a9eec6c5b906e5262 ++ // patch can be removed when new version of `native-stack` will be released ++ /** ++ * Whether the keyboard should hide when swiping to the previous screen. Defaults to `false`. ++ * ++ * Only supported on iOS ++ */ ++ keyboardHandlingEnabled?: boolean; + }; + + export type NativeStackNavigatorProps = DefaultNavigatorOptions< +diff --git a/node_modules/@react-navigation/native-stack/src/views/NativeStackView.native.tsx b/node_modules/@react-navigation/native-stack/src/views/NativeStackView.native.tsx +index a005c43..03d8b50 100644 +--- a/node_modules/@react-navigation/native-stack/src/views/NativeStackView.native.tsx ++++ b/node_modules/@react-navigation/native-stack/src/views/NativeStackView.native.tsx +@@ -161,6 +161,7 @@ const SceneView = ({ + statusBarTranslucent, + statusBarColor, + freezeOnBlur, ++ keyboardHandlingEnabled, + } = options; + + let { +@@ -289,6 +290,7 @@ const SceneView = ({ + onNativeDismissCancelled={onNativeDismissCancelled} + // this prop is available since rn-screens 3.16 + freezeOnBlur={freezeOnBlur} ++ hideKeyboardOnSwipe={keyboardHandlingEnabled} + > + + diff --git a/patches/@react-navigation+native-stack+6.9.26+002+added-interaction-manager-integration.patch b/patches/@react-navigation+native-stack+6.9.26+002+added-interaction-manager-integration.patch new file mode 100644 index 000000000000..e8c6ad7ffa2e --- /dev/null +++ b/patches/@react-navigation+native-stack+6.9.26+002+added-interaction-manager-integration.patch @@ -0,0 +1,196 @@ +diff --git a/node_modules/@react-navigation/native-stack/lib/commonjs/views/NativeStackView.native.js b/node_modules/@react-navigation/native-stack/lib/commonjs/views/NativeStackView.native.js +index 997e384..94b1b71 100644 +--- a/node_modules/@react-navigation/native-stack/lib/commonjs/views/NativeStackView.native.js ++++ b/node_modules/@react-navigation/native-stack/lib/commonjs/views/NativeStackView.native.js +@@ -160,6 +160,29 @@ const SceneView = _ref2 => { + preventedRoutes + } = (0, _native.usePreventRemoveContext)(); + const defaultHeaderHeight = (0, _elements.getDefaultHeaderHeight)(frame, isModal, statusBarHeight); ++ ++ // https://github.com/react-navigation/react-navigation/pull/11887 ++ const interactionHandleRef = React.useRef(); ++ ++ // this memo acts as a synchronous `useEffect` ++ React.useMemo(() => { ++ if (focused && interactionHandleRef.current === undefined) { ++ interactionHandleRef.current = _reactNative.InteractionManager.createInteractionHandle(); ++ } ++ }, [focused]); ++ const finishInteraction = React.useCallback(() => { ++ if (interactionHandleRef.current !== undefined) { ++ _reactNative.InteractionManager.clearInteractionHandle(interactionHandleRef.current); ++ interactionHandleRef.current = undefined; ++ } ++ }, []); ++ // in case if screen is unmounted faster than transition finishes, then `onAppear` will not be fired ++ // so we clean up an interaction here ++ React.useEffect(() => finishInteraction, [finishInteraction]); ++ const onAppearCallback = React.useCallback(e => { ++ onAppear === null || onAppear === void 0 ? void 0 : onAppear(e); ++ finishInteraction(); ++ }, [onAppear, finishInteraction]); + const [customHeaderHeight, setCustomHeaderHeight] = React.useState(defaultHeaderHeight); + const headerTopInsetEnabled = topInset !== 0; + const headerHeight = header ? customHeaderHeight : defaultHeaderHeight; +@@ -192,7 +215,7 @@ const SceneView = _ref2 => { + swipeDirection: gestureDirectionOverride, + transitionDuration: animationDuration, + onWillDisappear: onWillDisappear, +- onAppear: onAppear, ++ onAppear: onAppearCallback, + onDisappear: onDisappear, + onDismissed: onDismissed, + isNativeStack: true, +diff --git a/node_modules/@react-navigation/native-stack/lib/commonjs/views/NativeStackView.native.js.map b/node_modules/@react-navigation/native-stack/lib/commonjs/views/NativeStackView.native.js.map +index 1eb6dc4..e8f2da4 100644 +--- a/node_modules/@react-navigation/native-stack/lib/commonjs/views/NativeStackView.native.js.map ++++ b/node_modules/@react-navigation/native-stack/lib/commonjs/views/NativeStackView.native.js.map +@@ -1 +1 @@ +-{"version":3,"names":["isAndroid","Platform","OS","MaybeNestedStack","options","route","presentation","headerHeight","headerTopInsetEnabled","children","colors","useTheme","header","headerShown","contentStyle","isHeaderInModal","undefined","headerShownPreviousRef","React","useRef","useEffect","warnOnce","current","name","content","styles","container","backgroundColor","background","StyleSheet","absoluteFill","SceneView","index","focused","descriptor","previousDescriptor","nextDescriptor","onWillDisappear","onAppear","onDisappear","onDismissed","onHeaderBackButtonClicked","onNativeDismissCancelled","navigation","render","animationDuration","animationTypeForReplace","gestureEnabled","headerBackButtonMenuEnabled","headerBackground","headerTransparent","autoHideHomeIndicator","navigationBarColor","navigationBarHidden","orientation","statusBarAnimation","statusBarHidden","statusBarStyle","statusBarTranslucent","statusBarColor","freezeOnBlur","keyboardHandlingEnabled","animation","customAnimationOnGesture","fullScreenGestureEnabled","gestureDirection","nextGestureDirection","gestureDirectionOverride","insets","useSafeAreaInsets","frame","useSafeAreaFrame","isModal","isIPhone","isPad","isTV","isLandscape","width","height","isParentHeaderShown","useContext","HeaderShownContext","parentHeaderHeight","HeaderHeightContext","parentHeaderBack","HeaderBackContext","topInset","top","hasDynamicIsland","statusBarHeight","preventedRoutes","usePreventRemoveContext","defaultHeaderHeight","getDefaultHeaderHeight","customHeaderHeight","setCustomHeaderHeight","useState","headerBack","title","getHeaderTitle","isRemovePrevented","key","preventRemove","translucent","scene","e","nativeEvent","layout","absolute","back","headerBackTitle","NativeStackViewInner","state","descriptors","setNextDismissedKey","useDismissedRouteError","useInvalidPreventRemoveError","routes","map","isFocused","previousKey","nextKey","emit","type","data","closing","target","event","dispatch","StackActions","pop","dismissCount","source","NativeStackView","props","create","flex","flexDirection","position","left","right","zIndex","elevation","overflow"],"sourceRoot":"../../../src","sources":["views/NativeStackView.native.tsx"],"mappings":"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"} +\ No newline at end of file ++{"version":3,"names":["isAndroid","Platform","OS","MaybeNestedStack","options","route","presentation","headerHeight","headerTopInsetEnabled","children","colors","useTheme","header","headerShown","contentStyle","isHeaderInModal","undefined","headerShownPreviousRef","React","useRef","useEffect","warnOnce","current","name","content","styles","container","backgroundColor","background","StyleSheet","absoluteFill","SceneView","index","focused","descriptor","previousDescriptor","nextDescriptor","onWillDisappear","onAppear","onDisappear","onDismissed","onHeaderBackButtonClicked","onNativeDismissCancelled","navigation","render","animationDuration","animationTypeForReplace","gestureEnabled","headerBackButtonMenuEnabled","headerBackground","headerTransparent","autoHideHomeIndicator","navigationBarColor","navigationBarHidden","orientation","statusBarAnimation","statusBarHidden","statusBarStyle","statusBarTranslucent","statusBarColor","freezeOnBlur","keyboardHandlingEnabled","animation","customAnimationOnGesture","fullScreenGestureEnabled","gestureDirection","nextGestureDirection","gestureDirectionOverride","insets","useSafeAreaInsets","frame","useSafeAreaFrame","isModal","isIPhone","isPad","isTV","isLandscape","width","height","isParentHeaderShown","useContext","HeaderShownContext","parentHeaderHeight","HeaderHeightContext","parentHeaderBack","HeaderBackContext","topInset","top","hasDynamicIsland","statusBarHeight","preventedRoutes","usePreventRemoveContext","defaultHeaderHeight","getDefaultHeaderHeight","interactionHandleRef","useMemo","InteractionManager","createInteractionHandle","finishInteraction","useCallback","clearInteractionHandle","onAppearCallback","e","customHeaderHeight","setCustomHeaderHeight","useState","headerBack","title","getHeaderTitle","isRemovePrevented","key","preventRemove","translucent","scene","nativeEvent","layout","absolute","back","headerBackTitle","NativeStackViewInner","state","descriptors","setNextDismissedKey","useDismissedRouteError","useInvalidPreventRemoveError","routes","map","isFocused","previousKey","nextKey","emit","type","data","closing","target","event","dispatch","StackActions","pop","dismissCount","source","NativeStackView","props","create","flex","flexDirection","position","left","right","zIndex","elevation","overflow"],"sourceRoot":"../../../src","sources":["views/NativeStackView.native.tsx"],"mappings":"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"} +\ No newline at end of file +diff --git a/node_modules/@react-navigation/native-stack/lib/module/views/NativeStackView.native.js b/node_modules/@react-navigation/native-stack/lib/module/views/NativeStackView.native.js +index cbdd502..17f337b 100644 +--- a/node_modules/@react-navigation/native-stack/lib/module/views/NativeStackView.native.js ++++ b/node_modules/@react-navigation/native-stack/lib/module/views/NativeStackView.native.js +@@ -2,7 +2,7 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function + import { getDefaultHeaderHeight, getHeaderTitle, HeaderBackContext, HeaderHeightContext, HeaderShownContext, SafeAreaProviderCompat } from '@react-navigation/elements'; + import { NavigationContext, NavigationRouteContext, StackActions, usePreventRemoveContext, useTheme } from '@react-navigation/native'; + import * as React from 'react'; +-import { Platform, StyleSheet, View } from 'react-native'; ++import { InteractionManager, Platform, StyleSheet, View } from 'react-native'; + import { useSafeAreaFrame, useSafeAreaInsets } from 'react-native-safe-area-context'; + import { Screen, ScreenStack } from 'react-native-screens'; + import warnOnce from 'warn-once'; +@@ -151,6 +151,29 @@ const SceneView = _ref2 => { + preventedRoutes + } = usePreventRemoveContext(); + const defaultHeaderHeight = getDefaultHeaderHeight(frame, isModal, statusBarHeight); ++ ++ // https://github.com/react-navigation/react-navigation/pull/11887 ++ const interactionHandleRef = React.useRef(); ++ ++ // this memo acts as a synchronous `useEffect` ++ React.useMemo(() => { ++ if (focused && interactionHandleRef.current === undefined) { ++ interactionHandleRef.current = InteractionManager.createInteractionHandle(); ++ } ++ }, [focused]); ++ const finishInteraction = React.useCallback(() => { ++ if (interactionHandleRef.current !== undefined) { ++ InteractionManager.clearInteractionHandle(interactionHandleRef.current); ++ interactionHandleRef.current = undefined; ++ } ++ }, []); ++ // in case if screen is unmounted faster than transition finishes, then `onAppear` will not be fired ++ // so we clean up an interaction here ++ React.useEffect(() => finishInteraction, [finishInteraction]); ++ const onAppearCallback = React.useCallback(e => { ++ onAppear === null || onAppear === void 0 ? void 0 : onAppear(e); ++ finishInteraction(); ++ }, [onAppear, finishInteraction]); + const [customHeaderHeight, setCustomHeaderHeight] = React.useState(defaultHeaderHeight); + const headerTopInsetEnabled = topInset !== 0; + const headerHeight = header ? customHeaderHeight : defaultHeaderHeight; +@@ -183,7 +206,7 @@ const SceneView = _ref2 => { + swipeDirection: gestureDirectionOverride, + transitionDuration: animationDuration, + onWillDisappear: onWillDisappear, +- onAppear: onAppear, ++ onAppear: onAppearCallback, + onDisappear: onDisappear, + onDismissed: onDismissed, + isNativeStack: true, +diff --git a/node_modules/@react-navigation/native-stack/lib/module/views/NativeStackView.native.js.map b/node_modules/@react-navigation/native-stack/lib/module/views/NativeStackView.native.js.map +index 2b113bb..6bccdf6 100644 +--- a/node_modules/@react-navigation/native-stack/lib/module/views/NativeStackView.native.js.map ++++ b/node_modules/@react-navigation/native-stack/lib/module/views/NativeStackView.native.js.map +@@ -1 +1 @@ +-{"version":3,"names":["getDefaultHeaderHeight","getHeaderTitle","HeaderBackContext","HeaderHeightContext","HeaderShownContext","SafeAreaProviderCompat","NavigationContext","NavigationRouteContext","StackActions","usePreventRemoveContext","useTheme","React","Platform","StyleSheet","View","useSafeAreaFrame","useSafeAreaInsets","Screen","ScreenStack","warnOnce","useDismissedRouteError","useInvalidPreventRemoveError","DebugContainer","HeaderConfig","isAndroid","OS","MaybeNestedStack","options","route","presentation","headerHeight","headerTopInsetEnabled","children","colors","header","headerShown","contentStyle","isHeaderInModal","undefined","headerShownPreviousRef","useRef","useEffect","current","name","content","styles","container","backgroundColor","background","absoluteFill","SceneView","index","focused","descriptor","previousDescriptor","nextDescriptor","onWillDisappear","onAppear","onDisappear","onDismissed","onHeaderBackButtonClicked","onNativeDismissCancelled","navigation","render","animationDuration","animationTypeForReplace","gestureEnabled","headerBackButtonMenuEnabled","headerBackground","headerTransparent","autoHideHomeIndicator","navigationBarColor","navigationBarHidden","orientation","statusBarAnimation","statusBarHidden","statusBarStyle","statusBarTranslucent","statusBarColor","freezeOnBlur","keyboardHandlingEnabled","animation","customAnimationOnGesture","fullScreenGestureEnabled","gestureDirection","nextGestureDirection","gestureDirectionOverride","insets","frame","isModal","isIPhone","isPad","isTV","isLandscape","width","height","isParentHeaderShown","useContext","parentHeaderHeight","parentHeaderBack","topInset","top","hasDynamicIsland","statusBarHeight","preventedRoutes","defaultHeaderHeight","customHeaderHeight","setCustomHeaderHeight","useState","headerBack","title","isRemovePrevented","key","preventRemove","translucent","scene","e","nativeEvent","layout","absolute","back","headerBackTitle","NativeStackViewInner","state","descriptors","setNextDismissedKey","routes","map","isFocused","previousKey","nextKey","emit","type","data","closing","target","event","dispatch","pop","dismissCount","source","NativeStackView","props","create","flex","flexDirection","position","left","right","zIndex","elevation","overflow"],"sourceRoot":"../../../src","sources":["views/NativeStackView.native.tsx"],"mappings":"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"} +\ No newline at end of file ++{"version":3,"names":["getDefaultHeaderHeight","getHeaderTitle","HeaderBackContext","HeaderHeightContext","HeaderShownContext","SafeAreaProviderCompat","NavigationContext","NavigationRouteContext","StackActions","usePreventRemoveContext","useTheme","React","InteractionManager","Platform","StyleSheet","View","useSafeAreaFrame","useSafeAreaInsets","Screen","ScreenStack","warnOnce","useDismissedRouteError","useInvalidPreventRemoveError","DebugContainer","HeaderConfig","isAndroid","OS","MaybeNestedStack","options","route","presentation","headerHeight","headerTopInsetEnabled","children","colors","header","headerShown","contentStyle","isHeaderInModal","undefined","headerShownPreviousRef","useRef","useEffect","current","name","content","styles","container","backgroundColor","background","absoluteFill","SceneView","index","focused","descriptor","previousDescriptor","nextDescriptor","onWillDisappear","onAppear","onDisappear","onDismissed","onHeaderBackButtonClicked","onNativeDismissCancelled","navigation","render","animationDuration","animationTypeForReplace","gestureEnabled","headerBackButtonMenuEnabled","headerBackground","headerTransparent","autoHideHomeIndicator","navigationBarColor","navigationBarHidden","orientation","statusBarAnimation","statusBarHidden","statusBarStyle","statusBarTranslucent","statusBarColor","freezeOnBlur","keyboardHandlingEnabled","animation","customAnimationOnGesture","fullScreenGestureEnabled","gestureDirection","nextGestureDirection","gestureDirectionOverride","insets","frame","isModal","isIPhone","isPad","isTV","isLandscape","width","height","isParentHeaderShown","useContext","parentHeaderHeight","parentHeaderBack","topInset","top","hasDynamicIsland","statusBarHeight","preventedRoutes","defaultHeaderHeight","interactionHandleRef","useMemo","createInteractionHandle","finishInteraction","useCallback","clearInteractionHandle","onAppearCallback","e","customHeaderHeight","setCustomHeaderHeight","useState","headerBack","title","isRemovePrevented","key","preventRemove","translucent","scene","nativeEvent","layout","absolute","back","headerBackTitle","NativeStackViewInner","state","descriptors","setNextDismissedKey","routes","map","isFocused","previousKey","nextKey","emit","type","data","closing","target","event","dispatch","pop","dismissCount","source","NativeStackView","props","create","flex","flexDirection","position","left","right","zIndex","elevation","overflow"],"sourceRoot":"../../../src","sources":["views/NativeStackView.native.tsx"],"mappings":"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"} +\ No newline at end of file +diff --git a/node_modules/@react-navigation/native-stack/lib/typescript/src/views/NativeStackView.native.d.ts.map b/node_modules/@react-navigation/native-stack/lib/typescript/src/views/NativeStackView.native.d.ts.map +index 3cdaf10..245bf7e 100644 +--- a/node_modules/@react-navigation/native-stack/lib/typescript/src/views/NativeStackView.native.d.ts.map ++++ b/node_modules/@react-navigation/native-stack/lib/typescript/src/views/NativeStackView.native.d.ts.map +@@ -1 +1 @@ +-{"version":3,"file":"NativeStackView.native.d.ts","sourceRoot":"","sources":["../../../../src/views/NativeStackView.native.tsx"],"names":[],"mappings":"AAQA,OAAO,EAGL,aAAa,EAGb,oBAAoB,EAGrB,MAAM,0BAA0B,CAAC;AAelC,OAAO,KAAK,EAEV,wBAAwB,EACxB,4BAA4B,EAE7B,MAAM,UAAU,CAAC;AAiWlB,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,oBAAoB,CAAC,aAAa,CAAC,CAAC;IAC3C,UAAU,EAAE,4BAA4B,CAAC;IACzC,WAAW,EAAE,wBAAwB,CAAC;CACvC,CAAC;AA8EF,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,KAAK,EAAE,KAAK,eAMnD"} +\ No newline at end of file ++{"version":3,"file":"NativeStackView.native.d.ts","sourceRoot":"","sources":["../../../../src/views/NativeStackView.native.tsx"],"names":[],"mappings":"AAQA,OAAO,EAGL,aAAa,EAGb,oBAAoB,EAGrB,MAAM,0BAA0B,CAAC;AAelC,OAAO,KAAK,EAEV,wBAAwB,EACxB,4BAA4B,EAE7B,MAAM,UAAU,CAAC;AAgYlB,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,oBAAoB,CAAC,aAAa,CAAC,CAAC;IAC3C,UAAU,EAAE,4BAA4B,CAAC;IACzC,WAAW,EAAE,wBAAwB,CAAC;CACvC,CAAC;AA8EF,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,KAAK,EAAE,KAAK,eAMnD"} +\ No newline at end of file +diff --git a/node_modules/@react-navigation/native-stack/src/views/NativeStackView.native.tsx b/node_modules/@react-navigation/native-stack/src/views/NativeStackView.native.tsx +index 03d8b50..e8e4c27 100644 +--- a/node_modules/@react-navigation/native-stack/src/views/NativeStackView.native.tsx ++++ b/node_modules/@react-navigation/native-stack/src/views/NativeStackView.native.tsx +@@ -17,7 +17,7 @@ import { + useTheme, + } from '@react-navigation/native'; + import * as React from 'react'; +-import { Platform, StyleSheet, View } from 'react-native'; ++import { InteractionManager, Platform, StyleSheet, View } from 'react-native'; + import { + useSafeAreaFrame, + useSafeAreaInsets, +@@ -121,7 +121,7 @@ type SceneViewProps = { + previousDescriptor?: NativeStackDescriptor; + nextDescriptor?: NativeStackDescriptor; + onWillDisappear: () => void; +- onAppear: () => void; ++ onAppear: ScreenProps['onAppear']; + onDisappear: () => void; + onDismissed: ScreenProps['onDismissed']; + onHeaderBackButtonClicked: ScreenProps['onHeaderBackButtonClicked']; +@@ -234,6 +234,42 @@ const SceneView = ({ + statusBarHeight + ); + ++ // https://github.com/react-navigation/react-navigation/pull/11887 ++ const interactionHandleRef = React.useRef(); ++ ++ const finishInteraction = React.useCallback(() => { ++ if (interactionHandleRef.current !== undefined) { ++ InteractionManager.clearInteractionHandle(interactionHandleRef.current); ++ interactionHandleRef.current = undefined; ++ } ++ }, []); ++ // this memo acts as a synchronous `useEffect` ++ React.useMemo(() => { ++ if (focused && interactionHandleRef.current === undefined) { ++ interactionHandleRef.current = ++ InteractionManager.createInteractionHandle(); ++ // actually transition is highly unlikely to be more than 500ms, but sometimes BottomTabNavigator ++ // can become unfocused and then focused again, and in this case `onAppear` will not be fired an ++ // we will get infinite interaction manager handler. To fix that we are making a running timeout ++ // action that will clear an interaction 100% ++ setTimeout(finishInteraction, 500); ++ } ++ }, [focused]); ++ // in case if screen is unmounted faster than transition finishes, then `onAppear` will not be fired ++ // so we clean up an interaction here ++ React.useEffect(() => finishInteraction, [finishInteraction]); ++ ++ const onAppearCallback = React.useCallback< ++ NonNullable ++ >( ++ (e) => { ++ onAppear?.(e); ++ ++ finishInteraction(); ++ }, ++ [onAppear, finishInteraction] ++ ); ++ + const [customHeaderHeight, setCustomHeaderHeight] = + React.useState(defaultHeaderHeight); + +@@ -279,7 +315,7 @@ const SceneView = ({ + swipeDirection={gestureDirectionOverride} + transitionDuration={animationDuration} + onWillDisappear={onWillDisappear} +- onAppear={onAppear} ++ onAppear={onAppearCallback} + onDisappear={onDisappear} + onDismissed={onDismissed} + isNativeStack diff --git a/patches/react-native-screens+3.34.0+002+ios_from_left_animation.patch b/patches/react-native-screens+3.34.0+002+ios_from_left_animation.patch new file mode 100644 index 000000000000..e53da4dca546 --- /dev/null +++ b/patches/react-native-screens+3.34.0+002+ios_from_left_animation.patch @@ -0,0 +1,413 @@ +diff --git a/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/Screen.kt b/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/Screen.kt +index fb4260f..9d08d39 100644 +--- a/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/Screen.kt ++++ b/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/Screen.kt +@@ -364,6 +364,8 @@ class Screen( + SLIDE_FROM_LEFT, + FADE_FROM_BOTTOM, + IOS, ++ IOS_FROM_RIGHT, ++ IOS_FROM_LEFT, + } + + enum class ReplaceAnimation { +diff --git a/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenStack.kt b/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenStack.kt +index 4b520d1..b8c66e5 100644 +--- a/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenStack.kt ++++ b/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenStack.kt +@@ -160,7 +160,9 @@ class ScreenStack( + R.anim.rns_no_animation_medium, + ) + StackAnimation.FADE_FROM_BOTTOM -> it.setCustomAnimations(R.anim.rns_fade_from_bottom, R.anim.rns_no_animation_350) +- StackAnimation.IOS -> it.setCustomAnimations(R.anim.rns_slide_in_from_right_ios, R.anim.rns_slide_out_to_left_ios) ++ StackAnimation.IOS -> it.setCustomAnimations(R.anim.rns_ios_from_right_foreground_open, R.anim.rns_ios_from_right_background_open) ++ StackAnimation.IOS_FROM_RIGHT -> it.setCustomAnimations(R.anim.rns_ios_from_right_foreground_open, R.anim.rns_ios_from_right_background_open) ++ StackAnimation.IOS_FROM_LEFT -> it.setCustomAnimations(R.anim.rns_ios_from_left_foreground_open, R.anim.rns_ios_from_left_background_open) + } + } else { + when (stackAnimation) { +@@ -183,7 +185,9 @@ class ScreenStack( + R.anim.rns_slide_out_to_bottom, + ) + StackAnimation.FADE_FROM_BOTTOM -> it.setCustomAnimations(R.anim.rns_no_animation_250, R.anim.rns_fade_to_bottom) +- StackAnimation.IOS -> it.setCustomAnimations(R.anim.rns_slide_in_from_left_ios, R.anim.rns_slide_out_to_right_ios) ++ StackAnimation.IOS -> it.setCustomAnimations(R.anim.rns_ios_from_right_foreground_close, R.anim.rns_ios_from_right_background_close) ++ StackAnimation.IOS_FROM_RIGHT -> it.setCustomAnimations(R.anim.rns_ios_from_right_background_close, R.anim.rns_ios_from_right_foreground_close) ++ StackAnimation.IOS_FROM_LEFT -> it.setCustomAnimations(R.anim.rns_ios_from_left_background_close, R.anim.rns_ios_from_left_foreground_close) + } + } + } +@@ -373,6 +377,8 @@ class ScreenStack( + Build.VERSION.SDK_INT >= 33 || + fragmentWrapper.screen.stackAnimation === StackAnimation.SLIDE_FROM_BOTTOM || + fragmentWrapper.screen.stackAnimation === StackAnimation.FADE_FROM_BOTTOM || +- fragmentWrapper.screen.stackAnimation === StackAnimation.IOS ++ fragmentWrapper.screen.stackAnimation === StackAnimation.IOS || ++ fragmentWrapper.screen.stackAnimation === StackAnimation.IOS_FROM_RIGHT || ++ fragmentWrapper.screen.stackAnimation === StackAnimation.IOS_FROM_LEFT + } + } +diff --git a/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenViewManager.kt b/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenViewManager.kt +index 99e88f6..0699904 100644 +--- a/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenViewManager.kt ++++ b/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenViewManager.kt +@@ -104,6 +104,8 @@ open class ScreenViewManager : + "slide_from_bottom" -> Screen.StackAnimation.SLIDE_FROM_BOTTOM + "fade_from_bottom" -> Screen.StackAnimation.FADE_FROM_BOTTOM + "ios" -> Screen.StackAnimation.IOS ++ "ios_from_right" -> Screen.StackAnimation.IOS_FROM_RIGHT ++ "ios_from_left" -> Screen.StackAnimation.IOS_FROM_LEFT + else -> throw JSApplicationIllegalArgumentException("Unknown animation type $animation") + } + } +diff --git a/node_modules/react-native-screens/android/src/main/res/base/anim/rns_ios_from_left_background_close.xml b/node_modules/react-native-screens/android/src/main/res/base/anim/rns_ios_from_left_background_close.xml +new file mode 100644 +index 0000000..5d75e0b +--- /dev/null ++++ b/node_modules/react-native-screens/android/src/main/res/base/anim/rns_ios_from_left_background_close.xml +@@ -0,0 +1,5 @@ ++ ++ +diff --git a/node_modules/react-native-screens/android/src/main/res/base/anim/rns_ios_from_left_background_open.xml b/node_modules/react-native-screens/android/src/main/res/base/anim/rns_ios_from_left_background_open.xml +new file mode 100644 +index 0000000..11a8d45 +--- /dev/null ++++ b/node_modules/react-native-screens/android/src/main/res/base/anim/rns_ios_from_left_background_open.xml +@@ -0,0 +1,5 @@ ++ ++ +diff --git a/node_modules/react-native-screens/android/src/main/res/base/anim/rns_ios_from_left_foreground_close.xml b/node_modules/react-native-screens/android/src/main/res/base/anim/rns_ios_from_left_foreground_close.xml +new file mode 100644 +index 0000000..2cb6237 +--- /dev/null ++++ b/node_modules/react-native-screens/android/src/main/res/base/anim/rns_ios_from_left_foreground_close.xml +@@ -0,0 +1,6 @@ ++ ++ +diff --git a/node_modules/react-native-screens/android/src/main/res/base/anim/rns_ios_from_left_foreground_open.xml b/node_modules/react-native-screens/android/src/main/res/base/anim/rns_ios_from_left_foreground_open.xml +new file mode 100644 +index 0000000..394ac66 +--- /dev/null ++++ b/node_modules/react-native-screens/android/src/main/res/base/anim/rns_ios_from_left_foreground_open.xml +@@ -0,0 +1,6 @@ ++ ++ +diff --git a/node_modules/react-native-screens/android/src/main/res/base/anim/rns_ios_from_right_background_close.xml b/node_modules/react-native-screens/android/src/main/res/base/anim/rns_ios_from_right_background_close.xml +new file mode 100644 +index 0000000..66a611f +--- /dev/null ++++ b/node_modules/react-native-screens/android/src/main/res/base/anim/rns_ios_from_right_background_close.xml +@@ -0,0 +1,5 @@ ++ ++ +diff --git a/node_modules/react-native-screens/android/src/main/res/base/anim/rns_ios_from_right_background_open.xml b/node_modules/react-native-screens/android/src/main/res/base/anim/rns_ios_from_right_background_open.xml +new file mode 100644 +index 0000000..1d92c95 +--- /dev/null ++++ b/node_modules/react-native-screens/android/src/main/res/base/anim/rns_ios_from_right_background_open.xml +@@ -0,0 +1,5 @@ ++ ++ +diff --git a/node_modules/react-native-screens/android/src/main/res/base/anim/rns_ios_from_right_foreground_close.xml b/node_modules/react-native-screens/android/src/main/res/base/anim/rns_ios_from_right_foreground_close.xml +new file mode 100644 +index 0000000..1073ae6 +--- /dev/null ++++ b/node_modules/react-native-screens/android/src/main/res/base/anim/rns_ios_from_right_foreground_close.xml +@@ -0,0 +1,6 @@ ++ ++ +diff --git a/node_modules/react-native-screens/android/src/main/res/base/anim/rns_ios_from_right_foreground_open.xml b/node_modules/react-native-screens/android/src/main/res/base/anim/rns_ios_from_right_foreground_open.xml +new file mode 100644 +index 0000000..e687584 +--- /dev/null ++++ b/node_modules/react-native-screens/android/src/main/res/base/anim/rns_ios_from_right_foreground_open.xml +@@ -0,0 +1,6 @@ ++ ++ +diff --git a/node_modules/react-native-screens/android/src/main/res/base/anim/rns_slide_in_from_left_ios.xml b/node_modules/react-native-screens/android/src/main/res/base/anim/rns_slide_in_from_left_ios.xml +deleted file mode 100644 +index 66a611f..0000000 +--- a/node_modules/react-native-screens/android/src/main/res/base/anim/rns_slide_in_from_left_ios.xml ++++ /dev/null +@@ -1,5 +0,0 @@ +- +- +diff --git a/node_modules/react-native-screens/android/src/main/res/base/anim/rns_slide_in_from_right_ios.xml b/node_modules/react-native-screens/android/src/main/res/base/anim/rns_slide_in_from_right_ios.xml +deleted file mode 100644 +index e687584..0000000 +--- a/node_modules/react-native-screens/android/src/main/res/base/anim/rns_slide_in_from_right_ios.xml ++++ /dev/null +@@ -1,6 +0,0 @@ +- +- +diff --git a/node_modules/react-native-screens/android/src/main/res/base/anim/rns_slide_out_to_left_ios.xml b/node_modules/react-native-screens/android/src/main/res/base/anim/rns_slide_out_to_left_ios.xml +deleted file mode 100644 +index 0789fbe..0000000 +--- a/node_modules/react-native-screens/android/src/main/res/base/anim/rns_slide_out_to_left_ios.xml ++++ /dev/null +@@ -1,5 +0,0 @@ +- +- +diff --git a/node_modules/react-native-screens/android/src/main/res/base/anim/rns_slide_out_to_right_ios.xml b/node_modules/react-native-screens/android/src/main/res/base/anim/rns_slide_out_to_right_ios.xml +deleted file mode 100644 +index 1073ae6..0000000 +--- a/node_modules/react-native-screens/android/src/main/res/base/anim/rns_slide_out_to_right_ios.xml ++++ /dev/null +@@ -1,6 +0,0 @@ +- +- +diff --git a/node_modules/react-native-screens/ios/RNSConvert.mm b/node_modules/react-native-screens/ios/RNSConvert.mm +index 2acf655..0ad8ff3 100644 +--- a/node_modules/react-native-screens/ios/RNSConvert.mm ++++ b/node_modules/react-native-screens/ios/RNSConvert.mm +@@ -51,12 +51,15 @@ + (RNSScreenStackPresentation)RNSScreenStackPresentationFromCppEquivalent: + + (RNSScreenStackAnimation)RNSScreenStackAnimationFromCppEquivalent:(react::RNSScreenStackAnimation)stackAnimation + { + switch (stackAnimation) { +- // these three are intentionally grouped ++ // these four are intentionally grouped + case react::RNSScreenStackAnimation::Slide_from_right: + case react::RNSScreenStackAnimation::Ios: ++ case react::RNSScreenStackAnimation::Ios_from_right: + case react::RNSScreenStackAnimation::Default: + return RNSScreenStackAnimationDefault; ++ // these two are intentionally grouped + case react::RNSScreenStackAnimation::Slide_from_left: ++ case react::RNSScreenStackAnimation::Ios_from_left: + return RNSScreenStackAnimationSlideFromLeft; + case react::RNSScreenStackAnimation::Flip: + return RNSScreenStackAnimationFlip; +diff --git a/node_modules/react-native-screens/ios/RNSScreen.mm b/node_modules/react-native-screens/ios/RNSScreen.mm +index b673407..0c7ec2b 100644 +--- a/node_modules/react-native-screens/ios/RNSScreen.mm ++++ b/node_modules/react-native-screens/ios/RNSScreen.mm +@@ -1546,6 +1546,8 @@ @implementation RCTConvert (RNSScreen) + @"slide_from_right" : @(RNSScreenStackAnimationDefault), + @"slide_from_left" : @(RNSScreenStackAnimationSlideFromLeft), + @"ios" : @(RNSScreenStackAnimationDefault), ++ @"ios_from_right" : @(RNSScreenStackAnimationDefault), ++ @"ios_from_left" : @(RNSScreenStackAnimationSlideFromLeft), + }), + RNSScreenStackAnimationDefault, + integerValue) +diff --git a/node_modules/react-native-screens/lib/commonjs/fabric/ScreenNativeComponent.js.map b/node_modules/react-native-screens/lib/commonjs/fabric/ScreenNativeComponent.js.map +index 4920853..00ab471 100644 +--- a/node_modules/react-native-screens/lib/commonjs/fabric/ScreenNativeComponent.js.map ++++ b/node_modules/react-native-screens/lib/commonjs/fabric/ScreenNativeComponent.js.map +@@ -1 +1 @@ +-{"version":3,"names":["_codegenNativeComponent","_interopRequireDefault","require","obj","__esModule","default","_default","exports","codegenNativeComponent","interfaceOnly"],"sourceRoot":"../../../src","sources":["fabric/ScreenNativeComponent.ts"],"mappings":";;;;;;AAAA,IAAAA,uBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA6F,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAU7F;AAAA,IAAAG,QAAA,GAAAC,OAAA,CAAAF,OAAA,GA6Fe,IAAAG,+BAAsB,EAAc,WAAW,EAAE;EAC9DC,aAAa,EAAE;AACjB,CAAC,CAAC"} ++{"version":3,"names":["_codegenNativeComponent","_interopRequireDefault","require","obj","__esModule","default","_default","exports","codegenNativeComponent","interfaceOnly"],"sourceRoot":"../../../src","sources":["fabric/ScreenNativeComponent.ts"],"mappings":";;;;;;AAAA,IAAAA,uBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA6F,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAU7F;AAAA,IAAAG,QAAA,GAAAC,OAAA,CAAAF,OAAA,GA+Fe,IAAAG,+BAAsB,EAAc,WAAW,EAAE;EAC9DC,aAAa,EAAE;AACjB,CAAC,CAAC"} +diff --git a/node_modules/react-native-screens/lib/module/fabric/ScreenNativeComponent.js.map b/node_modules/react-native-screens/lib/module/fabric/ScreenNativeComponent.js.map +index e21812a..7a67ad7 100644 +--- a/node_modules/react-native-screens/lib/module/fabric/ScreenNativeComponent.js.map ++++ b/node_modules/react-native-screens/lib/module/fabric/ScreenNativeComponent.js.map +@@ -1 +1 @@ +-{"version":3,"names":["codegenNativeComponent","interfaceOnly"],"sourceRoot":"../../../src","sources":["fabric/ScreenNativeComponent.ts"],"mappings":"AAAA,OAAOA,sBAAsB,MAAM,yDAAyD;;AAU5F;;AA6FA,eAAeA,sBAAsB,CAAc,WAAW,EAAE;EAC9DC,aAAa,EAAE;AACjB,CAAC,CAAC"} ++{"version":3,"names":["codegenNativeComponent","interfaceOnly"],"sourceRoot":"../../../src","sources":["fabric/ScreenNativeComponent.ts"],"mappings":"AAAA,OAAOA,sBAAsB,MAAM,yDAAyD;;AAU5F;;AA+FA,eAAeA,sBAAsB,CAAc,WAAW,EAAE;EAC9DC,aAAa,EAAE;AACjB,CAAC,CAAC"} +diff --git a/node_modules/react-native-screens/lib/typescript/fabric/ScreenNativeComponent.d.ts b/node_modules/react-native-screens/lib/typescript/fabric/ScreenNativeComponent.d.ts +index 92874bd..11ed190 100644 +--- a/node_modules/react-native-screens/lib/typescript/fabric/ScreenNativeComponent.d.ts ++++ b/node_modules/react-native-screens/lib/typescript/fabric/ScreenNativeComponent.d.ts +@@ -20,7 +20,7 @@ type GestureResponseDistanceType = Readonly<{ + bottom: Float; + }>; + type StackPresentation = 'push' | 'modal' | 'transparentModal' | 'fullScreenModal' | 'formSheet' | 'containedModal' | 'containedTransparentModal'; +-type StackAnimation = 'default' | 'flip' | 'simple_push' | 'none' | 'fade' | 'slide_from_right' | 'slide_from_left' | 'slide_from_bottom' | 'fade_from_bottom' | 'ios'; ++type StackAnimation = 'default' | 'flip' | 'simple_push' | 'none' | 'fade' | 'slide_from_right' | 'slide_from_left' | 'slide_from_bottom' | 'fade_from_bottom' | 'ios' | 'ios_from_right' | 'ios_from_left'; + type SwipeDirection = 'vertical' | 'horizontal'; + type ReplaceAnimation = 'pop' | 'push'; + type SheetDetentTypes = 'large' | 'medium' | 'all'; +diff --git a/node_modules/react-native-screens/lib/typescript/fabric/ScreenNativeComponent.d.ts.map b/node_modules/react-native-screens/lib/typescript/fabric/ScreenNativeComponent.d.ts.map +index 84f2fad..d919c9f 100644 +--- a/node_modules/react-native-screens/lib/typescript/fabric/ScreenNativeComponent.d.ts.map ++++ b/node_modules/react-native-screens/lib/typescript/fabric/ScreenNativeComponent.d.ts.map +@@ -1 +1 @@ +-{"version":3,"file":"ScreenNativeComponent.d.ts","sourceRoot":"","sources":["../../../src/fabric/ScreenNativeComponent.ts"],"names":[],"mappings":"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"} +\ No newline at end of file ++{"version":3,"file":"ScreenNativeComponent.d.ts","sourceRoot":"","sources":["../../../src/fabric/ScreenNativeComponent.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EACV,kBAAkB,EAClB,WAAW,EACX,KAAK,EACL,KAAK,EACL,MAAM,EACP,MAAM,2CAA2C,CAAC;AAGnD,KAAK,WAAW,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;AAEhC,KAAK,oBAAoB,GAAG,QAAQ,CAAC;IACnC,YAAY,EAAE,KAAK,CAAC;CACrB,CAAC,CAAC;AAEH,KAAK,uBAAuB,GAAG,QAAQ,CAAC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC;IACf,YAAY,EAAE,KAAK,CAAC;CACrB,CAAC,CAAC;AAEH,KAAK,uBAAuB,GAAG,QAAQ,CAAC;IACtC,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC,CAAC;AAEH,KAAK,2BAA2B,GAAG,QAAQ,CAAC;IAC1C,KAAK,EAAE,KAAK,CAAC;IACb,GAAG,EAAE,KAAK,CAAC;IACX,GAAG,EAAE,KAAK,CAAC;IACX,MAAM,EAAE,KAAK,CAAC;CACf,CAAC,CAAC;AAEH,KAAK,iBAAiB,GAClB,MAAM,GACN,OAAO,GACP,kBAAkB,GAClB,iBAAiB,GACjB,WAAW,GACX,gBAAgB,GAChB,2BAA2B,CAAC;AAEhC,KAAK,cAAc,GACf,SAAS,GACT,MAAM,GACN,aAAa,GACb,MAAM,GACN,MAAM,GACN,kBAAkB,GAClB,iBAAiB,GACjB,mBAAmB,GACnB,kBAAkB,GAClB,KAAK,GACL,gBAAgB,GAChB,eAAe,CAAC;AAEpB,KAAK,cAAc,GAAG,UAAU,GAAG,YAAY,CAAC;AAEhD,KAAK,gBAAgB,GAAG,KAAK,GAAG,MAAM,CAAC;AAEvC,KAAK,gBAAgB,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEnD,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,QAAQ,CAAC,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC3C,WAAW,CAAC,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC9C,WAAW,CAAC,EAAE,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;IACvD,wBAAwB,CAAC,EAAE,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;IACpE,YAAY,CAAC,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC/C,eAAe,CAAC,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAClD,oBAAoB,CAAC,EAAE,kBAAkB,CAAC,uBAAuB,CAAC,CAAC;IACnE,oBAAoB,CAAC,EAAE,kBAAkB,CAAC,uBAAuB,CAAC,CAAC;IACnE,eAAe,CAAC,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAClD,yBAAyB,CAAC,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC5D,mBAAmB,CAAC,EAAE,WAAW,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IAC7D,0BAA0B,CAAC,EAAE,WAAW,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;IAClE,mBAAmB,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAClD,iBAAiB,CAAC,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;IAC7C,8BAA8B,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC7D,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,cAAc,CAAC,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC5C,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,uBAAuB,CAAC,EAAE,2BAA2B,CAAC;IACtD,iBAAiB,CAAC,EAAE,WAAW,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IAC3D,cAAc,CAAC,EAAE,WAAW,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IACxD,kBAAkB,CAAC,EAAE,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC7C,gBAAgB,CAAC,EAAE,WAAW,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;IACxD,cAAc,CAAC,EAAE,WAAW,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;IAC3D,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,aAAa,CAAC,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;IACzC,kBAAkB,CAAC,EAAE,UAAU,CAAC;IAChC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,gCAAgC,CAAC,EAAE,OAAO,CAAC;CAC5C;;AAED,wBAEG"} +\ No newline at end of file +diff --git a/node_modules/react-native-screens/lib/typescript/native-stack/types.d.ts b/node_modules/react-native-screens/lib/typescript/native-stack/types.d.ts +index ce3a88f..f349bf6 100644 +--- a/node_modules/react-native-screens/lib/typescript/native-stack/types.d.ts ++++ b/node_modules/react-native-screens/lib/typescript/native-stack/types.d.ts +@@ -397,7 +397,9 @@ export type NativeStackNavigationOptions = { + * - "slide_from_bottom" – performs a slide from bottom animation + * - "slide_from_right" - slide in the new screen from right to left (Android only, resolves to default transition on iOS) + * - "slide_from_left" - slide in the new screen from left to right +- * - "ios" - iOS like slide in animation (Android only, resolves to default transition on iOS) ++ * - "ios" - @deprecated iOS like slide in animation. pushes in the new screen from right to left (Android only, resolves to default transition on iOS) (will be removed in v4.0.0 in favor of `ios_from_right`) ++ * - "ios_from_right" - iOS like slide in animation. pushes in the new screen from right to left (Android only, resolves to default transition on iOS) ++ * - "ios_from_left" - iOS like slide in animation. pushes in the new screen from left to right (Android only, resolves to default transition on iOS) + * - "none" – the screen appears/dissapears without an animation + */ + stackAnimation?: ScreenProps['stackAnimation']; +diff --git a/node_modules/react-native-screens/lib/typescript/native-stack/types.d.ts.map b/node_modules/react-native-screens/lib/typescript/native-stack/types.d.ts.map +index 00b53ff..f91cd9d 100644 +--- a/node_modules/react-native-screens/lib/typescript/native-stack/types.d.ts.map ++++ b/node_modules/react-native-screens/lib/typescript/native-stack/types.d.ts.map +@@ -1 +1 @@ +-{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/native-stack/types.tsx"],"names":[],"mappings":"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"} +\ No newline at end of file ++{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/native-stack/types.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,SAAS,EACV,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EACL,mBAAmB,EACnB,SAAS,EACT,SAAS,EACT,UAAU,EACX,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,qBAAqB,EACrB,WAAW,EACX,4BAA4B,EAC5B,cAAc,EACd,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,MAAM,6BAA6B,GAAG;IAC1C;;;;OAIG;IACH,MAAM,EAAE;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC;IAC5B;;OAEG;IACH,OAAO,EAAE;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC;IAC7B;;OAEG;IACH,eAAe,EAAE;QAAE,IAAI,EAAE;YAAE,OAAO,EAAE,OAAO,CAAA;SAAE,CAAA;KAAE,CAAC;IAChD;;OAEG;IACH,aAAa,EAAE;QAAE,IAAI,EAAE;YAAE,OAAO,EAAE,OAAO,CAAA;SAAE,CAAA;KAAE,CAAC;IAC9C;;OAEG;IACH,aAAa,EAAE;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC;IACnC;;OAEG;IACH,kBAAkB,EAAE;QAAE,IAAI,EAAE;YAAE,YAAY,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;CACxD,CAAC;AAEF,MAAM,MAAM,yBAAyB,CACnC,SAAS,SAAS,aAAa,EAC/B,SAAS,SAAS,MAAM,SAAS,GAAG,MAAM,IACxC,cAAc,CAChB,SAAS,EACT,SAAS,EACT,oBAAoB,CAAC,SAAS,CAAC,EAC/B,4BAA4B,EAC5B,6BAA6B,CAC9B,GACC,kBAAkB,CAAC,SAAS,CAAC,CAAC;AAEhC,MAAM,MAAM,sBAAsB,CAChC,SAAS,SAAS,aAAa,EAC/B,SAAS,SAAS,MAAM,SAAS,GAAG,MAAM,IACxC;IACF,UAAU,EAAE,yBAAyB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC5D,KAAK,EAAE,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG,iBAAiB,CAC1D,aAAa,EACb,6BAA6B,CAC9B,CAAC;AAIF,MAAM,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAE7C,MAAM,MAAM,4BAA4B,GAAG;IACzC;;;OAGG;IACH,eAAe,CAAC,EAAE,mBAAmB,CAAC;IACtC;;OAEG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;OAEG;IACH,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;OAEG;IACH,SAAS,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAC1B;;;OAGG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;;;;;OAOG;IACH,qBAAqB,CAAC,EAAE,4BAA4B,CAAC,uBAAuB,CAAC,CAAC;IAC9E;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;;OAMG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;;;;;;;OAQG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,WAAW,CAAC,yBAAyB,CAAC,CAAC;IACjE;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;;OAQG;IACH,oBAAoB,CAAC,EAAE;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF;;;;;OAKG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,SAAS,CAAC,EAAE,UAAU,CAAA;KAAE,KAAK,KAAK,CAAC,SAAS,CAAC;IACtE;;OAEG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE;QACjB,eAAe,CAAC,EAAE,UAAU,CAAC;KAC9B,CAAC;IACF;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;OAEG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC;;;;;;;;;OASG;IACH,qBAAqB,CAAC,EAAE;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,UAAU,CAAC;KACpB,CAAC;IACF;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,SAAS,CAAC,EAAE,UAAU,CAAA;KAAE,KAAK,KAAK,CAAC,SAAS,CAAC;IACpE;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,SAAS,CAAC,EAAE,UAAU,CAAA;KAAE,KAAK,KAAK,CAAC,SAAS,CAAC;IACrE;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,WAAW,CAAC,EAAE;QACZ,eAAe,CAAC,EAAE,UAAU,CAAC;QAC7B,UAAU,CAAC,EAAE,4BAA4B,CAAC,YAAY,CAAC,CAAC;KACzD,CAAC;IACF;;OAEG;IACH,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,UAAU,CAAC;KACpB,CAAC;IACF;;;;;;;OAOG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;OAMG;IACH,gCAAgC,CAAC,EAAE,OAAO,CAAC;IAC3C;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,UAAU,CAAC;IAChC;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,WAAW,CAAC,kBAAkB,CAAC,CAAC;IACnD;;;;;;;;;;;OAWG;IACH,iBAAiB,CAAC,EAAE,WAAW,CAAC,mBAAmB,CAAC,CAAC;IACrD;;OAEG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B;;;;;;;;;;;;OAYG;IACH,mBAAmB,CAAC,EAAE,gBAAgB,CAAC;IACvC;;;;;;OAMG;IACH,8BAA8B,CAAC,EAAE,OAAO,CAAC;IACzC;;;;;;;;;OASG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;;;;;;;;OAaG;IACH,0BAA0B,CAAC,EAAE,gBAAgB,CAAC;IAC9C;;;;;;;;;;;;;;;OAeG;IACH,cAAc,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAC/C;;;;;;;;;;OAUG;IACH,iBAAiB,CAAC,EAAE,WAAW,CAAC,mBAAmB,CAAC,CAAC;IACrD;;OAEG;IACH,kBAAkB,CAAC,EAAE,WAAW,CAAC,oBAAoB,CAAC,CAAC;IACvD;;;;OAIG;IACH,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;OAEG;IACH,cAAc,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAC/C;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAC/C;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,mBAAmB,CAAC,EAAE,wBAAwB,CAAC;IAC/C,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,yBAAyB,GACnC,uBAAuB,CAAC,4BAA4B,CAAC,GACnD,kBAAkB,GAClB,2BAA2B,CAAC;AAEhC,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAC5C,aAAa,EACb,MAAM,EACN,oBAAoB,CAAC,aAAa,CAAC,EACnC,4BAA4B,CAC7B,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,CAAC,GAAG,EAAE,MAAM,GAAG,qBAAqB,CAAC;CACtC,CAAC;AAGF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAGF,MAAM,MAAM,aAAa,GACrB,YAAY,GACZ,WAAW,GACX,SAAS,GACT,WAAW,GACX,eAAe,GACf,iBAAiB,GACjB,qBAAqB,CAAC;AAE1B,MAAM,WAAW,kBAAkB;IACjC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,cAAc,EAAE,CACd,KAAK,EAAE,6BAA6B,EACpC,UAAU,EAAE,kBAAkB,KAC3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,mBAAmB,EAAE,CACnB,KAAK,EAAE,6BAA6B,EACpC,UAAU,EAAE,kBAAkB,KAC3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC,gBAAgB,CACpD,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAC7E,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;IACnD,qBAAqB,EAAE,KAAK,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;IACrE,WAAW,EAAE,iBAAiB,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,aAAa,GAAG,SAAS,CAAC;IACzC,mBAAmB,EAAE,wBAAwB,GAAG,SAAS,CAAC;IAC1D,iBAAiB,EAAE,OAAO,GAAG,SAAS,CAAC;CACxC,CAAC,CAAC"} +\ No newline at end of file +diff --git a/node_modules/react-native-screens/lib/typescript/types.d.ts b/node_modules/react-native-screens/lib/typescript/types.d.ts +index e6a12da..dcaee10 100644 +--- a/node_modules/react-native-screens/lib/typescript/types.d.ts ++++ b/node_modules/react-native-screens/lib/typescript/types.d.ts +@@ -11,7 +11,7 @@ export type SearchBarCommands = { + }; + export type BackButtonDisplayMode = 'default' | 'generic' | 'minimal'; + export type StackPresentationTypes = 'push' | 'modal' | 'transparentModal' | 'containedModal' | 'containedTransparentModal' | 'fullScreenModal' | 'formSheet'; +-export type StackAnimationTypes = 'default' | 'fade' | 'fade_from_bottom' | 'flip' | 'none' | 'simple_push' | 'slide_from_bottom' | 'slide_from_right' | 'slide_from_left' | 'ios'; ++export type StackAnimationTypes = 'default' | 'fade' | 'fade_from_bottom' | 'flip' | 'none' | 'simple_push' | 'slide_from_bottom' | 'slide_from_right' | 'slide_from_left' | 'ios' | 'ios_from_right' | 'ios_from_left'; + export type BlurEffectTypes = 'extraLight' | 'light' | 'dark' | 'regular' | 'prominent' | 'systemUltraThinMaterial' | 'systemThinMaterial' | 'systemMaterial' | 'systemThickMaterial' | 'systemChromeMaterial' | 'systemUltraThinMaterialLight' | 'systemThinMaterialLight' | 'systemMaterialLight' | 'systemThickMaterialLight' | 'systemChromeMaterialLight' | 'systemUltraThinMaterialDark' | 'systemThinMaterialDark' | 'systemMaterialDark' | 'systemThickMaterialDark' | 'systemChromeMaterialDark'; + export type ScreenReplaceTypes = 'push' | 'pop'; + export type SwipeDirectionTypes = 'vertical' | 'horizontal'; +@@ -273,7 +273,9 @@ export interface ScreenProps extends ViewProps { + * - `slide_from_bottom` – performs a slide from bottom animation + * - "slide_from_right" - slide in the new screen from right to left (Android only, resolves to default transition on iOS) + * - "slide_from_left" - slide in the new screen from left to right +- * - "ios" - iOS like slide in animation (Android only, resolves to default transition on iOS) ++ * - "ios" - @deprecated iOS like slide in animation. pushes in the new screen from right to left (Android only, resolves to default transition on iOS) (will be removed in v4.0.0 in favor of `ios_from_right`) ++ * - "ios_from_right" - iOS like slide in animation. pushes in the new screen from right to left (Android only, resolves to default transition on iOS) ++ * - "ios_from_left" - iOS like slide in animation. pushes in the new screen from left to right (Android only, resolves to default transition on iOS) + * - "none" – the screen appears/dissapears without an animation + */ + stackAnimation?: StackAnimationTypes; +diff --git a/node_modules/react-native-screens/lib/typescript/types.d.ts.map b/node_modules/react-native-screens/lib/typescript/types.d.ts.map +index 2fde7e3..c0d4747 100644 +--- a/node_modules/react-native-screens/lib/typescript/types.d.ts.map ++++ b/node_modules/react-native-screens/lib/typescript/types.d.ts.map +@@ -1 +1 @@ +-{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,QAAQ,EACR,oBAAoB,EACpB,SAAS,EACT,IAAI,EACJ,aAAa,EACb,uBAAuB,EACvB,UAAU,EACX,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,kBAAkB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,YAAY,EAAE,MAAM,IAAI,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AACtE,MAAM,MAAM,sBAAsB,GAC9B,MAAM,GACN,OAAO,GACP,kBAAkB,GAClB,gBAAgB,GAChB,2BAA2B,GAC3B,iBAAiB,GACjB,WAAW,CAAC;AAChB,MAAM,MAAM,mBAAmB,GAC3B,SAAS,GACT,MAAM,GACN,kBAAkB,GAClB,MAAM,GACN,MAAM,GACN,aAAa,GACb,mBAAmB,GACnB,kBAAkB,GAClB,iBAAiB,GACjB,KAAK,CAAC;AACV,MAAM,MAAM,eAAe,GACvB,YAAY,GACZ,OAAO,GACP,MAAM,GACN,SAAS,GACT,WAAW,GACX,yBAAyB,GACzB,oBAAoB,GACpB,gBAAgB,GAChB,qBAAqB,GACrB,sBAAsB,GACtB,8BAA8B,GAC9B,yBAAyB,GACzB,qBAAqB,GACrB,0BAA0B,GAC1B,2BAA2B,GAC3B,6BAA6B,GAC7B,wBAAwB,GACxB,oBAAoB,GACpB,yBAAyB,GACzB,0BAA0B,CAAC;AAC/B,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,KAAK,CAAC;AAChD,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,YAAY,CAAC;AAC5D,MAAM,MAAM,sBAAsB,GAC9B,SAAS,GACT,KAAK,GACL,UAAU,GACV,aAAa,GACb,eAAe,GACf,WAAW,GACX,gBAAgB,GAChB,iBAAiB,CAAC;AACtB,MAAM,MAAM,kBAAkB,GAC1B,MAAM,GACN,OAAO,GACP,MAAM,GACN,QAAQ,GACR,WAAW,CAAC;AAEhB,MAAM,MAAM,2BAA2B,GAAG;IACxC,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAC;AAC1D,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEpE,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACxD,aAAa,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACnE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;;OAMG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;;;;;;;OAQG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,2BAA2B,CAAC;IACtD;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;OAMG;IACH,gCAAgC,CAAC,EAAE,OAAO,CAAC;IAC3C;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,UAAU,CAAC;IAChC;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IAC5D,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IAC/D;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB,CAAC;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,KAAK,IAAI,CAAC;IAC1E;;OAEG;IACH,oBAAoB,CAAC,EAAE,CACrB,CAAC,EAAE,oBAAoB,CAAC,2BAA2B,CAAC,KACjD,IAAI,CAAC;IACV;;OAEG;IACH,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAC1D;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,MAAM,IAAI,CAAC;IACvC;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,CACzB,CAAC,EAAE,oBAAoB,CAAC;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,KAC9C,IAAI,CAAC;IACV;;OAEG;IACH,oBAAoB,CAAC,EAAE,CACrB,CAAC,EAAE,oBAAoB,CAAC,2BAA2B,CAAC,KACjD,IAAI,CAAC;IACV;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IAChE;;OAEG;IACH,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IACnE;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,kBAAkB,CAAC;IACtC;;;;;;;;;;;OAWG;IACH,iBAAiB,CAAC,EAAE,sBAAsB,CAAC;IAC3C;;;;;;;;;;;;OAYG;IACH,mBAAmB,CAAC,EAAE,gBAAgB,CAAC;IACvC;;;;;;OAMG;IACH,8BAA8B,CAAC,EAAE,OAAO,CAAC;IACzC;;;;;;;;;OASG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;;;;;;;;OAaG;IACH,0BAA0B,CAAC,EAAE,gBAAgB,CAAC;IAC9C;;;;;;;;;;;;;OAaG;IACH,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC;;;;;;;;;;OAUG;IACH,iBAAiB,CAAC,EAAE,sBAAsB,CAAC;IAC3C;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC/C;;;;OAIG;IACH,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;OAEG;IACH,cAAc,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IACxD;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAqB,SAAQ,SAAS;IACrD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,sBAAsB,EAAE,CACtB,QAAQ,EAAE,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,KACnE,IAAI,CAAC;CACX;AAED,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IACjD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;OAEG;IACH,qBAAqB,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IACzE,qBAAqB,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;IACtE,GAAG,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,4BAA6B,SAAQ,SAAS;IAC7D;;OAEG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;OAEG;IACH,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;OAEG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB;;OAEG;IACH,SAAS,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAC1B;;;OAGG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;;;;;OAOG;IACH,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,yBAAyB,CAAC,EAAE,UAAU,CAAC;IACvC;;;OAGG;IACH,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;OAEG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B;;;;;;;;;;;OAWG;IACH,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAEzC;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,WAAW,GAAG,YAAY,CAAC;IAC/D;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B;;;;OAIG;IACH,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IAClD;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IAC1D;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IAEvE;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB,CAAC,uBAAuB,CAAC,KAAK,IAAI,CAAC;IAE1E;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IAC3D;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB;;OAEG;IACH,mBAAmB,CAAC,EAAE,CACpB,CAAC,EAAE,oBAAoB,CAAC,uBAAuB,CAAC,KAC7C,IAAI,CAAC;IACV;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B;;OAEG;IACH,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB;;;;OAIG;IACH,aAAa,CAAC,EAAE,UAAU,CAAC;IAC3B;;;;OAIG;IACH,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B;;;;;OAKG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC"} +\ No newline at end of file ++{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.tsx"],"names":[],"mappings":"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"} +\ No newline at end of file +diff --git a/node_modules/react-native-screens/native-stack/README.md b/node_modules/react-native-screens/native-stack/README.md +index ce96e8e..a7d07c7 100644 +--- a/node_modules/react-native-screens/native-stack/README.md ++++ b/node_modules/react-native-screens/native-stack/README.md +@@ -302,7 +302,9 @@ How the given screen should appear/disappear when pushed or popped at the top of + - `slide_from_bottom` – performs a slide from bottom animation + - `slide_from_right` - slide in the new screen from right to left (Android only, resolves to default transition on iOS) + - `slide_from_left` - slide in the new screen from left to right +-- `ios` - iOS like slide in animation (Android only, resolves to default transition on iOS) ++- `"ios"` - @deprecated iOS like slide in animation. pushes in the new screen from right to left (Android only, resolves to default transition on iOS) (will be removed in v4.0.0 in favor of `ios_from_right`) ++- `"ios_from_right"` - iOS like slide in animation. pushes in the new screen from right to left (Android only, resolves to default transition on iOS) ++- `"ios_from_left"` - iOS like slide in animation. pushes in the new screen from left to right (Android only, resolves to default transition on iOS) + - `none` - the screen appears/disappears without an animation. + + Defaults to `default`. +diff --git a/node_modules/react-native-screens/src/fabric/ScreenNativeComponent.ts b/node_modules/react-native-screens/src/fabric/ScreenNativeComponent.ts +index 71c2251..4e39336 100644 +--- a/node_modules/react-native-screens/src/fabric/ScreenNativeComponent.ts ++++ b/node_modules/react-native-screens/src/fabric/ScreenNativeComponent.ts +@@ -51,7 +51,9 @@ type StackAnimation = + | 'slide_from_left' + | 'slide_from_bottom' + | 'fade_from_bottom' +- | 'ios'; ++ | 'ios' ++ | 'ios_from_right' ++ | 'ios_from_left'; + + type SwipeDirection = 'vertical' | 'horizontal'; + +diff --git a/node_modules/react-native-screens/src/native-stack/types.tsx b/node_modules/react-native-screens/src/native-stack/types.tsx +index 5ad3184..78989e7 100644 +--- a/node_modules/react-native-screens/src/native-stack/types.tsx ++++ b/node_modules/react-native-screens/src/native-stack/types.tsx +@@ -418,7 +418,9 @@ export type NativeStackNavigationOptions = { + * - "slide_from_bottom" – performs a slide from bottom animation + * - "slide_from_right" - slide in the new screen from right to left (Android only, resolves to default transition on iOS) + * - "slide_from_left" - slide in the new screen from left to right +- * - "ios" - iOS like slide in animation (Android only, resolves to default transition on iOS) ++ * - "ios" - @deprecated iOS like slide in animation. pushes in the new screen from right to left (Android only, resolves to default transition on iOS) (will be removed in v4.0.0 in favor of `ios_from_right`) ++ * - "ios_from_right" - iOS like slide in animation. pushes in the new screen from right to left (Android only, resolves to default transition on iOS) ++ * - "ios_from_left" - iOS like slide in animation. pushes in the new screen from left to right (Android only, resolves to default transition on iOS) + * - "none" – the screen appears/dissapears without an animation + */ + stackAnimation?: ScreenProps['stackAnimation']; +diff --git a/node_modules/react-native-screens/src/types.tsx b/node_modules/react-native-screens/src/types.tsx +index f83ad56..6052fdc 100644 +--- a/node_modules/react-native-screens/src/types.tsx ++++ b/node_modules/react-native-screens/src/types.tsx +@@ -38,7 +38,9 @@ export type StackAnimationTypes = + | 'slide_from_bottom' + | 'slide_from_right' + | 'slide_from_left' +- | 'ios'; ++ | 'ios' ++ | 'ios_from_right' ++ | 'ios_from_left'; + export type BlurEffectTypes = + | 'extraLight' + | 'light' +@@ -340,7 +342,9 @@ export interface ScreenProps extends ViewProps { + * - `slide_from_bottom` – performs a slide from bottom animation + * - "slide_from_right" - slide in the new screen from right to left (Android only, resolves to default transition on iOS) + * - "slide_from_left" - slide in the new screen from left to right +- * - "ios" - iOS like slide in animation (Android only, resolves to default transition on iOS) ++ * - "ios" - @deprecated iOS like slide in animation. pushes in the new screen from right to left (Android only, resolves to default transition on iOS) (will be removed in v4.0.0 in favor of `ios_from_right`) ++ * - "ios_from_right" - iOS like slide in animation. pushes in the new screen from right to left (Android only, resolves to default transition on iOS) ++ * - "ios_from_left" - iOS like slide in animation. pushes in the new screen from left to right (Android only, resolves to default transition on iOS) + * - "none" – the screen appears/dissapears without an animation + */ + stackAnimation?: StackAnimationTypes; +diff --git a/node_modules/react-native-screens/windows/RNScreens/Screen.h b/node_modules/react-native-screens/windows/RNScreens/Screen.h +index fd02641..564b173 100644 +--- a/node_modules/react-native-screens/windows/RNScreens/Screen.h ++++ b/node_modules/react-native-screens/windows/RNScreens/Screen.h +@@ -11,7 +11,9 @@ enum class StackAnimation { + SIMPLE_FROM_BOTTOM, + SLIDE_FROM_RIGHT, + SLIDE_FROM_LEFT, +- IOS ++ IOS, ++ IOS_FROM_RIGHT, ++ IOS_FROM_LEFT + }; + + enum class ReplaceAnimation { PUSH, POP }; diff --git a/src/components/ReportActionItem/MoneyRequestPreview/MoneyRequestPreviewContent.tsx b/src/components/ReportActionItem/MoneyRequestPreview/MoneyRequestPreviewContent.tsx index 420d3eaf46a8..9cbef2263745 100644 --- a/src/components/ReportActionItem/MoneyRequestPreview/MoneyRequestPreviewContent.tsx +++ b/src/components/ReportActionItem/MoneyRequestPreview/MoneyRequestPreviewContent.tsx @@ -1,4 +1,3 @@ -import type {RouteProp} from '@react-navigation/native'; import {useRoute} from '@react-navigation/native'; import lodashSortBy from 'lodash/sortBy'; import truncate from 'lodash/truncate'; @@ -29,6 +28,7 @@ import * as CurrencyUtils from '@libs/CurrencyUtils'; import * as DeviceCapabilities from '@libs/DeviceCapabilities'; import * as IOUUtils from '@libs/IOUUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types'; import type {TransactionDuplicateNavigatorParamList} from '@libs/Navigation/types'; import * as OptionsListUtils from '@libs/OptionsListUtils'; import * as ReceiptUtils from '@libs/ReceiptUtils'; @@ -76,7 +76,7 @@ function MoneyRequestPreviewContent({ const StyleUtils = useStyleUtils(); const {translate} = useLocalize(); const {windowWidth} = useWindowDimensions(); - const route = useRoute>(); + const route = useRoute>(); const {shouldUseNarrowLayout} = useResponsiveLayout(); const sessionAccountID = session?.accountID; diff --git a/src/components/ScreenWrapper.tsx b/src/components/ScreenWrapper.tsx index 9a85e1d3af24..9740acf1d266 100644 --- a/src/components/ScreenWrapper.tsx +++ b/src/components/ScreenWrapper.tsx @@ -1,5 +1,4 @@ import {useIsFocused, useNavigation} from '@react-navigation/native'; -import type {StackNavigationProp} from '@react-navigation/stack'; import type {ForwardedRef, ReactNode} from 'react'; import React, {createContext, forwardRef, useEffect, useMemo, useRef, useState} from 'react'; import type {StyleProp, ViewStyle} from 'react-native'; @@ -15,6 +14,7 @@ import useTackInputFocus from '@hooks/useTackInputFocus'; import useThemeStyles from '@hooks/useThemeStyles'; import useWindowDimensions from '@hooks/useWindowDimensions'; import * as Browser from '@libs/Browser'; +import type {PlatformStackNavigationProp} from '@libs/Navigation/PlatformStackNavigation/types'; import type {AuthScreensParamList, RootStackParamList} from '@libs/Navigation/types'; import toggleTestToolsModal from '@userActions/TestTool'; import CONST from '@src/CONST'; @@ -97,7 +97,7 @@ type ScreenWrapperProps = { * * This is required because transitionEnd event doesn't trigger in the testing environment. */ - navigation?: StackNavigationProp | StackNavigationProp; + navigation?: PlatformStackNavigationProp | PlatformStackNavigationProp; /** Whether to show offline indicator on wide screens */ shouldShowOfflineIndicatorInWideScreen?: boolean; @@ -142,7 +142,7 @@ function ScreenWrapper( * so in other places where ScreenWrapper is used, we need to * fallback to useNavigation. */ - const navigationFallback = useNavigation>(); + const navigationFallback = useNavigation>(); const navigation = navigationProp ?? navigationFallback; const isFocused = useIsFocused(); const {windowHeight} = useWindowDimensions(shouldUseCachedViewportHeight); diff --git a/src/components/ScrollOffsetContextProvider.tsx b/src/components/ScrollOffsetContextProvider.tsx index d7815d7a65a0..78d8c5ed61fb 100644 --- a/src/components/ScrollOffsetContextProvider.tsx +++ b/src/components/ScrollOffsetContextProvider.tsx @@ -1,7 +1,8 @@ -import type {ParamListBase, RouteProp} from '@react-navigation/native'; +import type {ParamListBase} from '@react-navigation/native'; import React, {createContext, useCallback, useEffect, useMemo, useRef} from 'react'; import {withOnyx} from 'react-native-onyx'; import usePrevious from '@hooks/usePrevious'; +import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types'; import type {NavigationPartialRoute, State} from '@libs/Navigation/types'; import NAVIGATORS from '@src/NAVIGATORS'; import ONYXKEYS from '@src/ONYXKEYS'; @@ -10,10 +11,10 @@ import type {PriorityMode} from '@src/types/onyx'; type ScrollOffsetContextValue = { /** Save scroll offset of flashlist on given screen */ - saveScrollOffset: (route: RouteProp, scrollOffset: number) => void; + saveScrollOffset: (route: PlatformStackRouteProp, scrollOffset: number) => void; /** Get scroll offset value for given screen */ - getScrollOffset: (route: RouteProp) => number | undefined; + getScrollOffset: (route: PlatformStackRouteProp) => number | undefined; /** Clean scroll offsets of screen that aren't anymore in the state */ cleanStaleScrollOffsets: (state: State) => void; @@ -38,7 +39,7 @@ const defaultValue: ScrollOffsetContextValue = { const ScrollOffsetContext = createContext(defaultValue); /** This function is prepared to work with HOME screens. May need modification if we want to handle other types of screens. */ -function getKey(route: RouteProp | NavigationPartialRoute): string { +function getKey(route: PlatformStackRouteProp | NavigationPartialRoute): string { if (route.params && 'policyID' in route.params && typeof route.params.policyID === 'string') { return `${route.name}-${route.params.policyID}`; } diff --git a/src/components/Search/index.tsx b/src/components/Search/index.tsx index e459be1815bc..7f9d0a76440b 100644 --- a/src/components/Search/index.tsx +++ b/src/components/Search/index.tsx @@ -1,5 +1,4 @@ import {useNavigation} from '@react-navigation/native'; -import type {StackNavigationProp} from '@react-navigation/stack'; import React, {useCallback, useEffect, useRef, useState} from 'react'; import {View} from 'react-native'; import type {NativeScrollEvent, NativeSyntheticEvent, StyleProp, ViewStyle} from 'react-native'; @@ -21,6 +20,7 @@ import * as SearchActions from '@libs/actions/Search'; import * as DeviceCapabilities from '@libs/DeviceCapabilities'; import Log from '@libs/Log'; import memoize from '@libs/memoize'; +import type {PlatformStackNavigationProp} from '@libs/Navigation/PlatformStackNavigation/types'; import * as ReportUtils from '@libs/ReportUtils'; import * as SearchUtils from '@libs/SearchUtils'; import Navigation from '@navigation/Navigation'; @@ -89,7 +89,7 @@ function Search({queryJSON, onSearchListScroll, contentContainerStyle}: SearchPr const {shouldUseNarrowLayout} = useResponsiveLayout(); const styles = useThemeStyles(); const {isSmallScreenWidth, isLargeScreenWidth} = useResponsiveLayout(); - const navigation = useNavigation>(); + const navigation = useNavigation>(); const lastSearchResultsRef = useRef>(); const {setCurrentSearchHash, setSelectedTransactions, selectedTransactions, clearSelectedTransactions, setShouldShowStatusBarLoading} = useSearchContext(); const {selectionMode} = useMobileSelectionMode(); diff --git a/src/components/withNavigationTransitionEnd.tsx b/src/components/withNavigationTransitionEnd.tsx index 83f14a1d58ef..69e04ff22e35 100644 --- a/src/components/withNavigationTransitionEnd.tsx +++ b/src/components/withNavigationTransitionEnd.tsx @@ -1,8 +1,8 @@ import {useNavigation} from '@react-navigation/native'; -import type {StackNavigationProp} from '@react-navigation/stack'; import type {ComponentType, ForwardedRef, RefAttributes} from 'react'; import React, {useEffect, useState} from 'react'; import getComponentDisplayName from '@libs/getComponentDisplayName'; +import type {PlatformStackNavigationProp} from '@libs/Navigation/PlatformStackNavigation/types'; import type {RootStackParamList} from '@libs/Navigation/types'; type WithNavigationTransitionEndProps = {didScreenTransitionEnd: boolean}; @@ -10,7 +10,7 @@ type WithNavigationTransitionEndProps = {didScreenTransitionEnd: boolean}; export default function (WrappedComponent: ComponentType>): React.ComponentType> { function WithNavigationTransitionEnd(props: TProps, ref: ForwardedRef) { const [didScreenTransitionEnd, setDidScreenTransitionEnd] = useState(false); - const navigation = useNavigation>(); + const navigation = useNavigation>(); useEffect(() => { const unsubscribeTransitionEnd = navigation.addListener('transitionEnd', () => { diff --git a/src/libs/Navigation/AppNavigator/AuthScreens.tsx b/src/libs/Navigation/AppNavigator/AuthScreens.tsx index f5f35fd21025..c952421920ed 100644 --- a/src/libs/Navigation/AppNavigator/AuthScreens.tsx +++ b/src/libs/Navigation/AppNavigator/AuthScreens.tsx @@ -1,4 +1,4 @@ -import React, {memo, useEffect, useMemo, useRef, useState} from 'react'; +import React, {memo, useEffect, useRef, useState} from 'react'; import {View} from 'react-native'; import type {OnyxEntry} from 'react-native-onyx'; import Onyx, {withOnyx} from 'react-native-onyx'; @@ -12,7 +12,6 @@ import useActiveWorkspace from '@hooks/useActiveWorkspace'; import useOnboardingFlowRouter from '@hooks/useOnboardingFlow'; import usePermissions from '@hooks/usePermissions'; import useResponsiveLayout from '@hooks/useResponsiveLayout'; -import useStyleUtils from '@hooks/useStyleUtils'; import useThemeStyles from '@hooks/useThemeStyles'; import * as Welcome from '@libs/actions/Welcome'; import {READ_COMMANDS} from '@libs/API/types'; @@ -20,7 +19,6 @@ import HttpUtils from '@libs/HttpUtils'; import KeyboardShortcut from '@libs/KeyboardShortcut'; import Log from '@libs/Log'; import getCurrentUrl from '@libs/Navigation/currentUrl'; -import getOnboardingModalScreenOptions from '@libs/Navigation/getOnboardingModalScreenOptions'; import Navigation from '@libs/Navigation/Navigation'; import type {AuthScreensParamList, CentralPaneName, CentralPaneScreensParamList} from '@libs/Navigation/types'; import NetworkConnection from '@libs/NetworkConnection'; @@ -55,9 +53,8 @@ import {isEmptyObject} from '@src/types/utils/EmptyObject'; import type ReactComponentModule from '@src/types/utils/ReactComponentModule'; import beforeRemoveReportOpenedFromSearchRHP from './beforeRemoveReportOpenedFromSearchRHP'; import CENTRAL_PANE_SCREENS from './CENTRAL_PANE_SCREENS'; -import createCustomStackNavigator from './createCustomStackNavigator'; +import createResponsiveStackNavigator from './createResponsiveStackNavigator'; import defaultScreenOptions from './defaultScreenOptions'; -import getRootNavigatorScreenOptions from './getRootNavigatorScreenOptions'; import BottomTabNavigator from './Navigators/BottomTabNavigator'; import ExplanationModalNavigator from './Navigators/ExplanationModalNavigator'; import FeatureTrainingModalNavigator from './Navigators/FeatureTrainingModalNavigator'; @@ -66,6 +63,7 @@ import LeftModalNavigator from './Navigators/LeftModalNavigator'; import OnboardingModalNavigator from './Navigators/OnboardingModalNavigator'; import RightModalNavigator from './Navigators/RightModalNavigator'; import WelcomeVideoModalNavigator from './Navigators/WelcomeVideoModalNavigator'; +import useRootNavigatorOptions from './useRootNavigatorOptions'; type AuthScreensProps = { /** Session of currently logged in user */ @@ -198,7 +196,7 @@ function handleNetworkReconnect() { } } -const RootStack = createCustomStackNavigator(); +const RootStack = createResponsiveStackNavigator(); // We want to delay the re-rendering for components(e.g. ReportActionCompose) // that depends on modal visibility until Modal is completely closed and its focused // When modal screen is focused, update modal visibility in Onyx @@ -228,16 +226,10 @@ const modalScreenListenersWithCancelSearch = { function AuthScreens({session, lastOpenedPublicRoomID, initialLastUpdateIDAppliedToClient}: AuthScreensProps) { const styles = useThemeStyles(); - const StyleUtils = useStyleUtils(); - const {shouldUseNarrowLayout, onboardingIsMediumOrLargerScreenWidth, isSmallScreenWidth} = useResponsiveLayout(); - const screenOptions = getRootNavigatorScreenOptions(shouldUseNarrowLayout, styles, StyleUtils); + const {shouldUseNarrowLayout} = useResponsiveLayout(); + const rootNavigatorOptions = useRootNavigatorOptions(); const {canUseDefaultRooms} = usePermissions(); const {activeWorkspaceID} = useActiveWorkspace(); - const onboardingModalScreenOptions = useMemo(() => screenOptions.onboardingModalNavigator(onboardingIsMediumOrLargerScreenWidth), [screenOptions, onboardingIsMediumOrLargerScreenWidth]); - const onboardingScreenOptions = useMemo( - () => getOnboardingModalScreenOptions(shouldUseNarrowLayout, styles, StyleUtils, onboardingIsMediumOrLargerScreenWidth), - [StyleUtils, shouldUseNarrowLayout, onboardingIsMediumOrLargerScreenWidth, styles], - ); const modal = useRef({}); const [didPusherInit, setDidPusherInit] = useState(false); const {isOnboardingCompleted} = useOnboardingFlowRouter(); @@ -424,19 +416,16 @@ function AuthScreens({session, lastOpenedPublicRoomID, initialLastUpdateIDApplie return ( - + {isOnboardingCompleted === false && ( { diff --git a/src/libs/Navigation/AppNavigator/ModalNavigatorScreenOptions.ts b/src/libs/Navigation/AppNavigator/ModalNavigatorScreenOptions.ts deleted file mode 100644 index 9dcbe8143b4a..000000000000 --- a/src/libs/Navigation/AppNavigator/ModalNavigatorScreenOptions.ts +++ /dev/null @@ -1,19 +0,0 @@ -import type {StackNavigationOptions} from '@react-navigation/stack'; -import {CardStyleInterpolators} from '@react-navigation/stack'; -import type {GestureDirection} from '@react-navigation/stack/lib/typescript/src/types'; -import type {ThemeStyles} from '@styles/index'; - -/** - * Modal stack navigator screen options generator function - * @param themeStyles - The styles object - * @returns The screen options object - */ -const ModalNavigatorScreenOptions = (themeStyles: ThemeStyles, gestureDirection: GestureDirection = 'horizontal'): StackNavigationOptions => ({ - headerShown: false, - animationEnabled: true, - gestureDirection, - cardStyle: themeStyles.navigationScreenCardStyle, - cardStyleInterpolator: CardStyleInterpolators.forHorizontalIOS, -}); - -export default ModalNavigatorScreenOptions; diff --git a/src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx b/src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx index 2be410ad8803..47dc18b6d6af 100644 --- a/src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx +++ b/src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx @@ -1,7 +1,6 @@ import type {ParamListBase} from '@react-navigation/routers'; -import type {StackNavigationOptions} from '@react-navigation/stack'; -import {createStackNavigator} from '@react-navigation/stack'; import React from 'react'; +import createPlatformStackNavigator from '@libs/Navigation/PlatformStackNavigation/createPlatformStackNavigator'; import type { AddPersonalBankAccountNavigatorParamList, DebugParamList, @@ -33,10 +32,10 @@ import type { TravelNavigatorParamList, WalletStatementNavigatorParamList, } from '@navigation/types'; -import type {ThemeStyles} from '@styles/index'; import type {Screen} from '@src/SCREENS'; import SCREENS from '@src/SCREENS'; import type ReactComponentModule from '@src/types/utils/ReactComponentModule'; +import type {GetModalStackScreenOptions} from './useModalScreenOptions'; import useModalScreenOptions from './useModalScreenOptions'; type Screens = Partial React.ComponentType>>; @@ -47,8 +46,8 @@ type Screens = Partial React.ComponentType>>; * @param screens key/value pairs where the key is the name of the screen and the value is a functon that returns the lazy-loaded component * @param getScreenOptions optional function that returns the screen options, override the default options */ -function createModalStackNavigator(screens: Screens, getScreenOptions?: (styles: ThemeStyles) => StackNavigationOptions): React.ComponentType { - const ModalStackNavigator = createStackNavigator(); +function createModalStackNavigator(screens: Screens, getScreenOptions?: GetModalStackScreenOptions): React.ComponentType { + const ModalStackNavigator = createPlatformStackNavigator(); function ModalStack() { const screenOptions = useModalScreenOptions(getScreenOptions); diff --git a/src/libs/Navigation/AppNavigator/ModalStackNavigators/useModalScreenOptions.ts b/src/libs/Navigation/AppNavigator/ModalStackNavigators/useModalScreenOptions.ts index 2193dcb2bf6b..e7549cc3f8b7 100644 --- a/src/libs/Navigation/AppNavigator/ModalStackNavigators/useModalScreenOptions.ts +++ b/src/libs/Navigation/AppNavigator/ModalStackNavigators/useModalScreenOptions.ts @@ -1,35 +1,39 @@ -import type {StackCardInterpolationProps, StackNavigationOptions} from '@react-navigation/stack'; +import type {StackCardInterpolationProps} from '@react-navigation/stack'; import {CardStyleInterpolators} from '@react-navigation/stack'; import {useMemo} from 'react'; -import useResponsiveLayout from '@hooks/useResponsiveLayout'; -import useStyleUtils from '@hooks/useStyleUtils'; import useThemeStyles from '@hooks/useThemeStyles'; import {isSafari} from '@libs/Browser'; -import createModalCardStyleInterpolator from '@navigation/AppNavigator/createModalCardStyleInterpolator'; +import hideKeyboardOnSwipe from '@libs/Navigation/AppNavigator/hideKeyboardOnSwipe'; +import type {PlatformStackNavigationOptions} from '@libs/Navigation/PlatformStackNavigation/types'; +import useModalCardStyleInterpolator from '@navigation/AppNavigator/useModalCardStyleInterpolator'; import type {ThemeStyles} from '@src/styles'; -function useModalScreenOptions(getScreenOptions?: (styles: ThemeStyles) => StackNavigationOptions) { +type GetModalStackScreenOptions = (styles: ThemeStyles) => PlatformStackNavigationOptions; + +function useModalScreenOptions(getScreenOptions?: GetModalStackScreenOptions) { const styles = useThemeStyles(); - const styleUtils = useStyleUtils(); - const {shouldUseNarrowLayout} = useResponsiveLayout(); + const customInterpolator = useModalCardStyleInterpolator(); let cardStyleInterpolator = CardStyleInterpolators.forHorizontalIOS; if (isSafari()) { - const customInterpolator = createModalCardStyleInterpolator(styleUtils); - cardStyleInterpolator = (props: StackCardInterpolationProps) => customInterpolator(shouldUseNarrowLayout, false, false, props); + cardStyleInterpolator = (props: StackCardInterpolationProps) => customInterpolator({props}); } const defaultSubRouteOptions = useMemo( - (): StackNavigationOptions => ({ - cardStyle: styles.navigationScreenCardStyle, + (): PlatformStackNavigationOptions => ({ + ...hideKeyboardOnSwipe, headerShown: false, - cardStyleInterpolator, + web: { + cardStyle: styles.navigationScreenCardStyle, + cardStyleInterpolator, + }, }), - [styles, cardStyleInterpolator], + [cardStyleInterpolator, styles.navigationScreenCardStyle], ); return getScreenOptions?.(styles) ?? defaultSubRouteOptions; } export default useModalScreenOptions; +export type {GetModalStackScreenOptions}; diff --git a/src/libs/Navigation/AppNavigator/Navigators/BottomTabNavigator.tsx b/src/libs/Navigation/AppNavigator/Navigators/BottomTabNavigator.tsx index 30e8d4c668c6..62cceee9f400 100644 --- a/src/libs/Navigation/AppNavigator/Navigators/BottomTabNavigator.tsx +++ b/src/libs/Navigation/AppNavigator/Navigators/BottomTabNavigator.tsx @@ -1,8 +1,8 @@ import {useNavigationState} from '@react-navigation/native'; -import type {StackNavigationOptions} from '@react-navigation/stack'; import React from 'react'; import createCustomBottomTabNavigator from '@libs/Navigation/AppNavigator/createCustomBottomTabNavigator'; import getTopmostCentralPaneRoute from '@libs/Navigation/getTopmostCentralPaneRoute'; +import type {PlatformStackNavigationOptions} from '@libs/Navigation/PlatformStackNavigation/types'; import type {BottomTabNavigatorParamList, CentralPaneName, NavigationPartialRoute, RootStackParamList} from '@libs/Navigation/types'; import SidebarScreen from '@pages/home/sidebar/SidebarScreen'; import SearchPageBottomTab from '@pages/Search/SearchPageBottomTab'; @@ -13,9 +13,8 @@ import ActiveCentralPaneRouteContext from './ActiveCentralPaneRouteContext'; const loadInitialSettingsPage = () => require('../../../../pages/settings/InitialSettingsPage').default; const Tab = createCustomBottomTabNavigator(); -const screenOptions: StackNavigationOptions = { +const screenOptions: PlatformStackNavigationOptions = { headerShown: false, - animationEnabled: false, }; function BottomTabNavigator() { diff --git a/src/libs/Navigation/AppNavigator/Navigators/ExplanationModalNavigator.tsx b/src/libs/Navigation/AppNavigator/Navigators/ExplanationModalNavigator.tsx index f4136bb8783a..0c964c3c4356 100644 --- a/src/libs/Navigation/AppNavigator/Navigators/ExplanationModalNavigator.tsx +++ b/src/libs/Navigation/AppNavigator/Navigators/ExplanationModalNavigator.tsx @@ -1,18 +1,18 @@ -import {createStackNavigator} from '@react-navigation/stack'; import React from 'react'; import {View} from 'react-native'; import NoDropZone from '@components/DragAndDrop/NoDropZone'; import ExplanationModal from '@components/ExplanationModal'; +import createPlatformStackNavigator from '@libs/Navigation/PlatformStackNavigation/createPlatformStackNavigator'; import type {ExplanationModalNavigatorParamList} from '@libs/Navigation/types'; import SCREENS from '@src/SCREENS'; -const Stack = createStackNavigator(); +const Stack = createPlatformStackNavigator(); function ExplanationModalNavigator() { return ( - + (); +const Stack = createPlatformStackNavigator(); function FeatureTrainingModalNavigator() { return ( - + - + {Object.entries(CENTRAL_PANE_WORKSPACE_SCREENS).map(([screenName, componentGetter]) => ( diff --git a/src/libs/Navigation/AppNavigator/Navigators/LeftModalNavigator.tsx b/src/libs/Navigation/AppNavigator/Navigators/LeftModalNavigator.tsx index 077bdce94545..927b2f3ef514 100644 --- a/src/libs/Navigation/AppNavigator/Navigators/LeftModalNavigator.tsx +++ b/src/libs/Navigation/AppNavigator/Navigators/LeftModalNavigator.tsx @@ -1,28 +1,28 @@ -import type {StackScreenProps} from '@react-navigation/stack'; -import {createStackNavigator} from '@react-navigation/stack'; -import React, {useMemo} from 'react'; +import React from 'react'; import {View} from 'react-native'; import NoDropZone from '@components/DragAndDrop/NoDropZone'; import useResponsiveLayout from '@hooks/useResponsiveLayout'; import useThemeStyles from '@hooks/useThemeStyles'; -import ModalNavigatorScreenOptions from '@libs/Navigation/AppNavigator/ModalNavigatorScreenOptions'; +import useModalNavigatorOptions from '@libs/Navigation/AppNavigator/useModalNavigatorOptions'; +import createPlatformStackNavigator from '@libs/Navigation/PlatformStackNavigation/createPlatformStackNavigator'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {AuthScreensParamList, LeftModalNavigatorParamList} from '@libs/Navigation/types'; import NAVIGATORS from '@src/NAVIGATORS'; import SCREENS from '@src/SCREENS'; import type ReactComponentModule from '@src/types/utils/ReactComponentModule'; import Overlay from './Overlay'; -type LeftModalNavigatorProps = StackScreenProps; +type LeftModalNavigatorProps = PlatformStackScreenProps; const loadChatFinder = () => require('../../../../pages/ChatFinderPage').default; const loadWorkspaceSwitcherPage = () => require('../../../../pages/WorkspaceSwitcherPage').default; -const Stack = createStackNavigator(); +const Stack = createPlatformStackNavigator(); function LeftModalNavigator({navigation}: LeftModalNavigatorProps) { const styles = useThemeStyles(); const {shouldUseNarrowLayout} = useResponsiveLayout(); - const screenOptions = useMemo(() => ModalNavigatorScreenOptions(styles, 'horizontal-inverted'), [styles]); + const screenOptions = useModalNavigatorOptions('horizontal-inverted'); return ( diff --git a/src/libs/Navigation/AppNavigator/Navigators/OnboardingModalNavigator.tsx b/src/libs/Navigation/AppNavigator/Navigators/OnboardingModalNavigator.tsx index e564af8103cc..8cc0678fb0f6 100644 --- a/src/libs/Navigation/AppNavigator/Navigators/OnboardingModalNavigator.tsx +++ b/src/libs/Navigation/AppNavigator/Navigators/OnboardingModalNavigator.tsx @@ -1,4 +1,3 @@ -import {createStackNavigator} from '@react-navigation/stack'; import React, {useCallback} from 'react'; import {View} from 'react-native'; import NoDropZone from '@components/DragAndDrop/NoDropZone'; @@ -7,6 +6,7 @@ import useKeyboardShortcut from '@hooks/useKeyboardShortcut'; import useResponsiveLayout from '@hooks/useResponsiveLayout'; import useThemeStyles from '@hooks/useThemeStyles'; import OnboardingModalNavigatorScreenOptions from '@libs/Navigation/AppNavigator/OnboardingModalNavigatorScreenOptions'; +import createPlatformStackNavigator from '@libs/Navigation/PlatformStackNavigation/createPlatformStackNavigator'; import type {OnboardingModalNavigatorParamList} from '@libs/Navigation/types'; import OnboardingRefManager from '@libs/OnboardingRefManager'; import OnboardingPersonalDetails from '@pages/OnboardingPersonalDetails'; @@ -16,7 +16,7 @@ import CONST from '@src/CONST'; import SCREENS from '@src/SCREENS'; import Overlay from './Overlay'; -const Stack = createStackNavigator(); +const Stack = createPlatformStackNavigator(); function OnboardingModalNavigator() { const styles = useThemeStyles(); diff --git a/src/libs/Navigation/AppNavigator/Navigators/Overlay/index.native.tsx b/src/libs/Navigation/AppNavigator/Navigators/Overlay/index.native.tsx index 0dd9e203c46b..cde195fca561 100644 --- a/src/libs/Navigation/AppNavigator/Navigators/Overlay/index.native.tsx +++ b/src/libs/Navigation/AppNavigator/Navigators/Overlay/index.native.tsx @@ -1,15 +1,5 @@ -import React from 'react'; -import type {BaseOverlayProps} from './BaseOverlay'; -import BaseOverlay from './BaseOverlay'; - -function Overlay({...rest}: Omit) { - return ( - - ); +function Overlay() { + return null; } Overlay.displayName = 'Overlay'; diff --git a/src/libs/Navigation/AppNavigator/Navigators/RightModalNavigator.tsx b/src/libs/Navigation/AppNavigator/Navigators/RightModalNavigator.tsx index cd6a93165990..7a2818bae114 100644 --- a/src/libs/Navigation/AppNavigator/Navigators/RightModalNavigator.tsx +++ b/src/libs/Navigation/AppNavigator/Navigators/RightModalNavigator.tsx @@ -1,40 +1,47 @@ -import type {StackCardInterpolationProps, StackScreenProps} from '@react-navigation/stack'; -import {createStackNavigator} from '@react-navigation/stack'; +import type {StackCardInterpolationProps} from '@react-navigation/stack'; import React, {useMemo, useRef} from 'react'; import {InteractionManager, View} from 'react-native'; import NoDropZone from '@components/DragAndDrop/NoDropZone'; import useResponsiveLayout from '@hooks/useResponsiveLayout'; -import useStyleUtils from '@hooks/useStyleUtils'; import useThemeStyles from '@hooks/useThemeStyles'; import {abandonReviewDuplicateTransactions} from '@libs/actions/Transaction'; import {isSafari} from '@libs/Browser'; -import ModalNavigatorScreenOptions from '@libs/Navigation/AppNavigator/ModalNavigatorScreenOptions'; +import hideKeyboardOnSwipe from '@libs/Navigation/AppNavigator/hideKeyboardOnSwipe'; import * as ModalStackNavigators from '@libs/Navigation/AppNavigator/ModalStackNavigators'; -import createModalCardStyleInterpolator from '@navigation/AppNavigator/createModalCardStyleInterpolator'; +import useModalCardStyleInterpolator from '@libs/Navigation/AppNavigator/useModalCardStyleInterpolator'; +import useModalNavigatorOptions from '@libs/Navigation/AppNavigator/useModalNavigatorOptions'; +import createPlatformStackNavigator from '@libs/Navigation/PlatformStackNavigation/createPlatformStackNavigator'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {AuthScreensParamList, RightModalNavigatorParamList} from '@navigation/types'; import NAVIGATORS from '@src/NAVIGATORS'; import SCREENS from '@src/SCREENS'; import Overlay from './Overlay'; -type RightModalNavigatorProps = StackScreenProps; +type RightModalNavigatorProps = PlatformStackScreenProps; -const Stack = createStackNavigator(); +const Stack = createPlatformStackNavigator(); function RightModalNavigator({navigation, route}: RightModalNavigatorProps) { const styles = useThemeStyles(); - const styleUtils = useStyleUtils(); const {shouldUseNarrowLayout} = useResponsiveLayout(); const isExecutingRef = useRef(false); + const customInterpolator = useModalCardStyleInterpolator(); + const modalNavigatorOptions = useModalNavigatorOptions(); + const screenOptions = useMemo(() => { - const options = ModalNavigatorScreenOptions(styles); // The .forHorizontalIOS interpolator from `@react-navigation` is misbehaving on Safari, so we override it with Expensify custom interpolator if (isSafari()) { - const customInterpolator = createModalCardStyleInterpolator(styleUtils); - options.cardStyleInterpolator = (props: StackCardInterpolationProps) => customInterpolator(shouldUseNarrowLayout, false, false, props); + return { + ...modalNavigatorOptions, + web: { + ...modalNavigatorOptions.web, + cardStyleInterpolator: (props: StackCardInterpolationProps) => customInterpolator({props}), + }, + }; } - return options; - }, [shouldUseNarrowLayout, styleUtils, styles]); + return modalNavigatorOptions; + }, [customInterpolator, modalNavigatorOptions]); return ( @@ -162,6 +169,7 @@ function RightModalNavigator({navigation, route}: RightModalNavigatorProps) { (); +const Stack = createPlatformStackNavigator(); function WelcomeVideoModalNavigator() { return ( - + ({ +const OnboardingModalNavigatorScreenOptions = (): PlatformStackNavigationOptions => ({ headerShown: false, - animationEnabled: true, gestureDirection: 'horizontal', - cardStyleInterpolator: CardStyleInterpolators.forHorizontalIOS, presentation: 'transparentModal', + web: { + cardStyleInterpolator: CardStyleInterpolators.forHorizontalIOS, + }, }); export default OnboardingModalNavigatorScreenOptions; diff --git a/src/libs/Navigation/AppNavigator/PublicScreens.tsx b/src/libs/Navigation/AppNavigator/PublicScreens.tsx index cfd41a4b1fa0..dbbb11c978d5 100644 --- a/src/libs/Navigation/AppNavigator/PublicScreens.tsx +++ b/src/libs/Navigation/AppNavigator/PublicScreens.tsx @@ -1,6 +1,6 @@ -import {createStackNavigator} from '@react-navigation/stack'; import React from 'react'; import {NativeModules} from 'react-native'; +import createPlatformStackNavigator from '@libs/Navigation/PlatformStackNavigation/createPlatformStackNavigator'; import type {PublicScreensParamList} from '@navigation/types'; import ConnectionCompletePage from '@pages/ConnectionCompletePage'; import SessionExpiredPage from '@pages/ErrorPage/SessionExpiredPage'; @@ -15,20 +15,18 @@ import NAVIGATORS from '@src/NAVIGATORS'; import SCREENS from '@src/SCREENS'; import defaultScreenOptions from './defaultScreenOptions'; -const RootStack = createStackNavigator(); +const RootStack = createPlatformStackNavigator(); function PublicScreens() { return ( - + {/* The structure for the HOME route has to be the same in public and auth screens. That's why the name for SignInPage is BOTTOM_TAB_NAVIGATOR. */} diff --git a/src/libs/Navigation/AppNavigator/createCustomBottomTabNavigator/BottomTabNavigationContentWrapper.tsx b/src/libs/Navigation/AppNavigator/createCustomBottomTabNavigator/BottomTabNavigationContentWrapper.tsx new file mode 100644 index 000000000000..dd93a6df7b1e --- /dev/null +++ b/src/libs/Navigation/AppNavigator/createCustomBottomTabNavigator/BottomTabNavigationContentWrapper.tsx @@ -0,0 +1,22 @@ +import React from 'react'; +import {View} from 'react-native'; +import ScreenWrapper from '@components/ScreenWrapper'; +import useThemeStyles from '@hooks/useThemeStyles'; +import type {NavigationContentWrapperProps} from '@libs/Navigation/PlatformStackNavigation/types'; + +function BottomTabNavigationContentWrapper({children, displayName}: NavigationContentWrapperProps) { + const styles = useThemeStyles(); + + return ( + + {children} + + ); +} + +export default BottomTabNavigationContentWrapper; diff --git a/src/libs/Navigation/AppNavigator/createCustomBottomTabNavigator/index.tsx b/src/libs/Navigation/AppNavigator/createCustomBottomTabNavigator/index.tsx index 7401c3368124..a4e50aeb6516 100644 --- a/src/libs/Navigation/AppNavigator/createCustomBottomTabNavigator/index.tsx +++ b/src/libs/Navigation/AppNavigator/createCustomBottomTabNavigator/index.tsx @@ -1,74 +1,32 @@ -import type {DefaultNavigatorOptions, ParamListBase, StackActionHelpers, StackNavigationState, StackRouterOptions} from '@react-navigation/native'; -import {createNavigatorFactory, StackRouter, useNavigationBuilder} from '@react-navigation/native'; -import type {StackNavigationEventMap, StackNavigationOptions} from '@react-navigation/stack'; -import {StackView} from '@react-navigation/stack'; +import type {ParamListBase} from '@react-navigation/native'; +import {createNavigatorFactory} from '@react-navigation/native'; import React from 'react'; -import {View} from 'react-native'; -import ScreenWrapper from '@components/ScreenWrapper'; -import useThemeStyles from '@hooks/useThemeStyles'; -import type {NavigationStateRoute} from '@libs/Navigation/types'; -import SCREENS from '@src/SCREENS'; +import createPlatformStackNavigatorComponent from '@libs/Navigation/PlatformStackNavigation/createPlatformStackNavigatorComponent'; +import type {ExtraContentProps, PlatformStackNavigationEventMap, PlatformStackNavigationOptions, PlatformStackNavigationState} from '@libs/Navigation/PlatformStackNavigation/types'; import BottomTabBar from './BottomTabBar'; +import BottomTabNavigationContentWrapper from './BottomTabNavigationContentWrapper'; +import useCustomState from './useCustomState'; -type CustomNavigatorProps = DefaultNavigatorOptions, StackNavigationOptions, StackNavigationEventMap> & { - initialRouteName: string; +const defaultScreenOptions: PlatformStackNavigationOptions = { + animation: 'none', }; -function getStateToRender(state: StackNavigationState): StackNavigationState { - const routesToRender = [state.routes.at(-1)] as NavigationStateRoute[]; - - // We need to render at least one HOME screen to make sure everything load properly. This may be not necessary after changing how IS_SIDEBAR_LOADED is handled. - // Currently this value will be switched only after the first HOME screen is rendered. - if (routesToRender.at(0)?.name !== SCREENS.HOME) { - const routeToRender = state.routes.find((route) => route.name === SCREENS.HOME); - if (routeToRender) { - routesToRender.unshift(routeToRender); - } - } - - return {...state, routes: routesToRender, index: routesToRender.length - 1}; +function ExtraContent({state}: ExtraContentProps) { + const selectedTab = state.routes.at(-1)?.name; + return ; } -function CustomBottomTabNavigator({initialRouteName, children, screenOptions, ...props}: CustomNavigatorProps) { - const {state, navigation, descriptors, NavigationContent} = useNavigationBuilder< - StackNavigationState, - StackRouterOptions, - StackActionHelpers, - StackNavigationOptions, - StackNavigationEventMap - >(StackRouter, { - children, - screenOptions, - initialRouteName, - }); - - const styles = useThemeStyles(); - const stateToRender = getStateToRender(state); - const selectedTab = stateToRender.routes.at(-1)?.name; - - return ( - - - - - - - - - ); +const CustomBottomTabNavigatorComponent = createPlatformStackNavigatorComponent('CustomBottomTabNavigator', { + useCustomState, + defaultScreenOptions, + NavigationContentWrapper: BottomTabNavigationContentWrapper, + ExtraContent, +}); + +function createCustomBottomTabNavigator() { + return createNavigatorFactory, PlatformStackNavigationOptions, PlatformStackNavigationEventMap, typeof CustomBottomTabNavigatorComponent>( + CustomBottomTabNavigatorComponent, + )(); } -CustomBottomTabNavigator.displayName = 'CustomBottomTabNavigator'; - -export default createNavigatorFactory(CustomBottomTabNavigator); +export default createCustomBottomTabNavigator; diff --git a/src/libs/Navigation/AppNavigator/createCustomBottomTabNavigator/useCustomState/index.native.ts b/src/libs/Navigation/AppNavigator/createCustomBottomTabNavigator/useCustomState/index.native.ts new file mode 100644 index 000000000000..30127edcd6bd --- /dev/null +++ b/src/libs/Navigation/AppNavigator/createCustomBottomTabNavigator/useCustomState/index.native.ts @@ -0,0 +1,3 @@ +const useCustomState = undefined; + +export default useCustomState; diff --git a/src/libs/Navigation/AppNavigator/createCustomBottomTabNavigator/useCustomState/index.ts b/src/libs/Navigation/AppNavigator/createCustomBottomTabNavigator/useCustomState/index.ts new file mode 100644 index 000000000000..e95c6c292dbc --- /dev/null +++ b/src/libs/Navigation/AppNavigator/createCustomBottomTabNavigator/useCustomState/index.ts @@ -0,0 +1,20 @@ +import type {CustomStateHookProps} from '@libs/Navigation/PlatformStackNavigation/types'; +import type {NavigationStateRoute} from '@libs/Navigation/types'; +import SCREENS from '@src/SCREENS'; + +function useCustomState({state}: CustomStateHookProps) { + const routesToRender = [state.routes.at(-1)] as NavigationStateRoute[]; + + // We need to render at least one HOME screen to make sure everything load properly. This may be not necessary after changing how IS_SIDEBAR_LOADED is handled. + // Currently this value will be switched only after the first HOME screen is rendered. + if (routesToRender.at(0)?.name !== SCREENS.HOME) { + const routeToRender = state.routes.find((route) => route.name === SCREENS.HOME); + if (routeToRender) { + routesToRender.unshift(routeToRender); + } + } + + return {stateToRender: {...state, routes: routesToRender, index: routesToRender.length - 1}}; +} + +export default useCustomState; diff --git a/src/libs/Navigation/AppNavigator/createCustomFullScreenNavigator/CustomFullScreenRouter.tsx b/src/libs/Navigation/AppNavigator/createCustomFullScreenNavigator/CustomFullScreenRouter.tsx index 7dc66d06fd4a..5c837fc93a5b 100644 --- a/src/libs/Navigation/AppNavigator/createCustomFullScreenNavigator/CustomFullScreenRouter.tsx +++ b/src/libs/Navigation/AppNavigator/createCustomFullScreenNavigator/CustomFullScreenRouter.tsx @@ -1,10 +1,10 @@ -import type {ParamListBase, PartialState, RouterConfigOptions, StackNavigationState} from '@react-navigation/native'; +import type {ParamListBase, PartialState, Router, RouterConfigOptions} from '@react-navigation/native'; import {StackRouter} from '@react-navigation/native'; import getIsNarrowLayout from '@libs/getIsNarrowLayout'; +import type {PlatformStackNavigationState, PlatformStackRouterOptions} from '@libs/Navigation/PlatformStackNavigation/types'; import SCREENS from '@src/SCREENS'; -import type {FullScreenNavigatorRouterOptions} from './types'; -type StackState = StackNavigationState | PartialState>; +type StackState = PlatformStackNavigationState | PartialState>; const isAtLeastOneInState = (state: StackState, screenName: string): boolean => state.routes.some((route) => route.name === screenName); @@ -32,7 +32,7 @@ function adaptStateIfNecessary(state: StackState) { // - WORKSPACE.INITIAL to cover left pane. // - WORKSPACE.PROFILE (first workspace settings screen) to cover central pane. if (!isNarrowLayout) { - if (state.routes.length === 1 && state.routes[0].name === SCREENS.WORKSPACE.INITIAL) { + if (state.routes.length === 1 && state.routes.at(0)?.name === SCREENS.WORKSPACE.INITIAL) { // @ts-expect-error Updating read only property // noinspection JSConstantReassignment state.stale = true; // eslint-disable-line @@ -49,8 +49,9 @@ function adaptStateIfNecessary(state: StackState) { } } -function CustomFullScreenRouter(options: FullScreenNavigatorRouterOptions) { - const stackRouter = StackRouter(options); +function CustomFullScreenRouter(options: PlatformStackRouterOptions) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const stackRouter = StackRouter(options) as Router, any>; return { ...stackRouter, @@ -65,7 +66,7 @@ function CustomFullScreenRouter(options: FullScreenNavigatorRouterOptions) { return initialState; }, - getRehydratedState(partialState: StackState, {routeNames, routeParamList, routeGetIdList}: RouterConfigOptions): StackNavigationState { + getRehydratedState(partialState: StackState, {routeNames, routeParamList, routeGetIdList}: RouterConfigOptions): PlatformStackNavigationState { adaptStateIfNecessary(partialState); const state = stackRouter.getRehydratedState(partialState, {routeNames, routeParamList, routeGetIdList}); return state; diff --git a/src/libs/Navigation/AppNavigator/createCustomFullScreenNavigator/index.native.tsx b/src/libs/Navigation/AppNavigator/createCustomFullScreenNavigator/index.native.tsx deleted file mode 100644 index 2f61f1519df0..000000000000 --- a/src/libs/Navigation/AppNavigator/createCustomFullScreenNavigator/index.native.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import type {ParamListBase, StackActionHelpers, StackNavigationState} from '@react-navigation/native'; -import {createNavigatorFactory, useNavigationBuilder} from '@react-navigation/native'; -import type {StackNavigationEventMap, StackNavigationOptions} from '@react-navigation/stack'; -import {StackView} from '@react-navigation/stack'; -import CustomFullScreenRouter from './CustomFullScreenRouter'; -import type {FullScreenNavigatorProps, FullScreenNavigatorRouterOptions} from './types'; - -function CustomFullScreenNavigator(props: FullScreenNavigatorProps) { - const {navigation, state, descriptors, NavigationContent} = useNavigationBuilder< - StackNavigationState, - FullScreenNavigatorRouterOptions, - StackActionHelpers, - StackNavigationOptions, - StackNavigationEventMap - >(CustomFullScreenRouter, { - children: props.children, - screenOptions: props.screenOptions, - initialRouteName: props.initialRouteName, - }); - - return ( - - - - ); -} - -CustomFullScreenNavigator.displayName = 'CustomFullScreenNavigator'; - -export default createNavigatorFactory, StackNavigationOptions, StackNavigationEventMap, typeof CustomFullScreenNavigator>(CustomFullScreenNavigator); diff --git a/src/libs/Navigation/AppNavigator/createCustomFullScreenNavigator/index.tsx b/src/libs/Navigation/AppNavigator/createCustomFullScreenNavigator/index.tsx index ee8dd54c920d..204a9780e7d5 100644 --- a/src/libs/Navigation/AppNavigator/createCustomFullScreenNavigator/index.tsx +++ b/src/libs/Navigation/AppNavigator/createCustomFullScreenNavigator/index.tsx @@ -1,50 +1,19 @@ -import type {ParamListBase, StackActionHelpers, StackNavigationState} from '@react-navigation/native'; -import {createNavigatorFactory, useNavigationBuilder} from '@react-navigation/native'; -import type {StackNavigationEventMap, StackNavigationOptions} from '@react-navigation/stack'; -import {StackView} from '@react-navigation/stack'; -import React, {useEffect} from 'react'; -import useResponsiveLayout from '@hooks/useResponsiveLayout'; -import navigationRef from '@libs/Navigation/navigationRef'; +import type {ParamListBase} from '@react-navigation/native'; +import {createNavigatorFactory} from '@react-navigation/native'; +import useNavigationResetOnLayoutChange from '@libs/Navigation/AppNavigator/useNavigationResetOnLayoutChange'; +import createPlatformStackNavigatorComponent from '@libs/Navigation/PlatformStackNavigation/createPlatformStackNavigatorComponent'; +import type {PlatformStackNavigationEventMap, PlatformStackNavigationOptions, PlatformStackNavigationState} from '@libs/Navigation/PlatformStackNavigation/types'; import CustomFullScreenRouter from './CustomFullScreenRouter'; -import type {FullScreenNavigatorProps, FullScreenNavigatorRouterOptions} from './types'; -function CustomFullScreenNavigator(props: FullScreenNavigatorProps) { - const {navigation, state, descriptors, NavigationContent} = useNavigationBuilder< - StackNavigationState, - FullScreenNavigatorRouterOptions, - StackActionHelpers, - StackNavigationOptions, - StackNavigationEventMap - >(CustomFullScreenRouter, { - children: props.children, - screenOptions: props.screenOptions, - initialRouteName: props.initialRouteName, - }); +const CustomFullScreenNavigatorComponent = createPlatformStackNavigatorComponent('CustomFullScreenNavigator', { + createRouter: CustomFullScreenRouter, + useCustomEffects: useNavigationResetOnLayoutChange, +}); - const {shouldUseNarrowLayout} = useResponsiveLayout(); - - useEffect(() => { - if (!navigationRef.isReady()) { - return; - } - // We need to separately reset state of this navigator to trigger getRehydratedState. - navigation.reset(navigation.getState()); - // eslint-disable-next-line react-compiler/react-compiler, react-hooks/exhaustive-deps - }, [shouldUseNarrowLayout]); - - return ( - - - - ); +function createCustomFullScreenNavigator() { + return createNavigatorFactory, PlatformStackNavigationOptions, PlatformStackNavigationEventMap, typeof CustomFullScreenNavigatorComponent>( + CustomFullScreenNavigatorComponent, + )(); } -CustomFullScreenNavigator.displayName = 'CustomFullScreenNavigator'; - -export default createNavigatorFactory, StackNavigationOptions, StackNavigationEventMap, typeof CustomFullScreenNavigator>(CustomFullScreenNavigator); +export default createCustomFullScreenNavigator; diff --git a/src/libs/Navigation/AppNavigator/createCustomFullScreenNavigator/types.ts b/src/libs/Navigation/AppNavigator/createCustomFullScreenNavigator/types.ts deleted file mode 100644 index 7e7808c003d7..000000000000 --- a/src/libs/Navigation/AppNavigator/createCustomFullScreenNavigator/types.ts +++ /dev/null @@ -1,8 +0,0 @@ -import type {DefaultNavigatorOptions, ParamListBase, StackNavigationState, StackRouterOptions} from '@react-navigation/native'; -import type {StackNavigationEventMap, StackNavigationOptions} from '@react-navigation/stack'; - -type FullScreenNavigatorRouterOptions = StackRouterOptions; - -type FullScreenNavigatorProps = DefaultNavigatorOptions, StackNavigationOptions, StackNavigationEventMap>; - -export type {FullScreenNavigatorProps, FullScreenNavigatorRouterOptions}; diff --git a/src/libs/Navigation/AppNavigator/createCustomStackNavigator/index.tsx b/src/libs/Navigation/AppNavigator/createCustomStackNavigator/index.tsx deleted file mode 100644 index 6c153b1b159e..000000000000 --- a/src/libs/Navigation/AppNavigator/createCustomStackNavigator/index.tsx +++ /dev/null @@ -1,122 +0,0 @@ -import type {ParamListBase, RouteProp, StackActionHelpers, StackNavigationState} from '@react-navigation/native'; -import {createNavigatorFactory, useNavigationBuilder} from '@react-navigation/native'; -import type {StackNavigationEventMap, StackNavigationOptions} from '@react-navigation/stack'; -import {StackView} from '@react-navigation/stack'; -import React, {useEffect, useMemo} from 'react'; -import {View} from 'react-native'; -import useResponsiveLayout from '@hooks/useResponsiveLayout'; -import useThemeStyles from '@hooks/useThemeStyles'; -import getTopmostCentralPaneRoute from '@libs/Navigation/getTopmostCentralPaneRoute'; -import navigationRef from '@libs/Navigation/navigationRef'; -import type {RootStackParamList, State} from '@libs/Navigation/types'; -import {isCentralPaneName} from '@libs/NavigationUtils'; -import SCREENS from '@src/SCREENS'; -import CustomRouter from './CustomRouter'; -import type {ResponsiveStackNavigatorProps, ResponsiveStackNavigatorRouterOptions} from './types'; - -type Routes = StackNavigationState['routes']; -function reduceCentralPaneRoutes(routes: Routes): Routes { - const result: Routes = []; - let count = 0; - const reverseRoutes = [...routes].reverse(); - - reverseRoutes.forEach((route) => { - if (isCentralPaneName(route.name)) { - // Remove all central pane routes except the last 3. This will improve performance. - if (count < 3) { - result.push(route); - count++; - } - } else { - result.push(route); - } - }); - - return result.reverse(); -} - -function ResponsiveStackNavigator(props: ResponsiveStackNavigatorProps) { - const {shouldUseNarrowLayout} = useResponsiveLayout(); - const styles = useThemeStyles(); - - const {navigation, state, descriptors, NavigationContent} = useNavigationBuilder< - StackNavigationState, - ResponsiveStackNavigatorRouterOptions, - StackActionHelpers, - StackNavigationOptions, - StackNavigationEventMap - >(CustomRouter, { - children: props.children, - screenOptions: props.screenOptions, - initialRouteName: props.initialRouteName, - }); - - useEffect(() => { - if (!navigationRef.isReady()) { - return; - } - navigationRef.resetRoot(navigationRef.getRootState()); - }, [shouldUseNarrowLayout]); - - const {stateToRender, searchRoute} = useMemo(() => { - const routes = reduceCentralPaneRoutes(state.routes); - - if (shouldUseNarrowLayout) { - const isSearchCentralPane = (route: RouteProp) => getTopmostCentralPaneRoute({routes: [route]} as State)?.name === SCREENS.SEARCH.CENTRAL_PANE; - - const lastRoute = routes.at(-1); - const lastSearchCentralPane = lastRoute && isSearchCentralPane(lastRoute) ? lastRoute : undefined; - const filteredRoutes = routes.filter((route) => !isSearchCentralPane(route)); - - // On narrow layout, if we are on /search route we want to hide all central pane routes and show only the bottom tab navigator. - if (lastSearchCentralPane) { - const filteredRoute = filteredRoutes.at(0); - if (filteredRoute) { - return { - stateToRender: { - ...state, - index: 0, - routes: [filteredRoute], - }, - searchRoute: lastSearchCentralPane, - }; - } - } - - return { - stateToRender: { - ...state, - index: filteredRoutes.length - 1, - routes: filteredRoutes, - }, - searchRoute: undefined, - }; - } - - return { - stateToRender: { - ...state, - index: routes.length - 1, - routes: [...routes], - }, - searchRoute: undefined, - }; - }, [state, shouldUseNarrowLayout]); - - return ( - - - {searchRoute && {descriptors[searchRoute.key].render()}} - - ); -} - -ResponsiveStackNavigator.displayName = 'ResponsiveStackNavigator'; - -export default createNavigatorFactory, StackNavigationOptions, StackNavigationEventMap, typeof ResponsiveStackNavigator>(ResponsiveStackNavigator); diff --git a/src/libs/Navigation/AppNavigator/createCustomStackNavigator/types.ts b/src/libs/Navigation/AppNavigator/createCustomStackNavigator/types.ts deleted file mode 100644 index 09d35e2a1680..000000000000 --- a/src/libs/Navigation/AppNavigator/createCustomStackNavigator/types.ts +++ /dev/null @@ -1,13 +0,0 @@ -import type {DefaultNavigatorOptions, ParamListBase, StackNavigationState, StackRouterOptions} from '@react-navigation/native'; -import type {StackNavigationEventMap, StackNavigationOptions} from '@react-navigation/stack'; - -type ResponsiveStackNavigatorConfig = { - isSmallScreenWidth: boolean; -}; - -type ResponsiveStackNavigatorRouterOptions = StackRouterOptions; - -type ResponsiveStackNavigatorProps = DefaultNavigatorOptions, StackNavigationOptions, StackNavigationEventMap> & - ResponsiveStackNavigatorConfig; - -export type {ResponsiveStackNavigatorRouterOptions, ResponsiveStackNavigatorProps, ResponsiveStackNavigatorConfig}; diff --git a/src/libs/Navigation/AppNavigator/createModalCardStyleInterpolator.ts b/src/libs/Navigation/AppNavigator/createModalCardStyleInterpolator.ts deleted file mode 100644 index 21911ebb56e2..000000000000 --- a/src/libs/Navigation/AppNavigator/createModalCardStyleInterpolator.ts +++ /dev/null @@ -1,49 +0,0 @@ -import type {StackCardInterpolatedStyle, StackCardInterpolationProps} from '@react-navigation/stack'; -import {Animated} from 'react-native'; -import type {StyleUtilsType} from '@styles/utils'; -import variables from '@styles/variables'; - -type ModalCardStyleInterpolator = ( - isSmallScreenWidth: boolean, - isFullScreenModal: boolean, - shouldUseNarrowLayout: boolean, - stackCardInterpolationProps: StackCardInterpolationProps, - outputRangeMultiplier?: number, -) => StackCardInterpolatedStyle; -type CreateModalCardStyleInterpolator = (StyleUtils: StyleUtilsType) => ModalCardStyleInterpolator; - -const createModalCardStyleInterpolator: CreateModalCardStyleInterpolator = - (StyleUtils) => - (isSmallScreenWidth, isFullScreenModal, shouldUseNarrowLayout, {current: {progress}, inverted, layouts: {screen}}, outputRangeMultiplier = 1) => { - if (shouldUseNarrowLayout) { - return { - cardStyle: { - opacity: progress, - }, - }; - } - - const translateX = Animated.multiply( - progress.interpolate({ - inputRange: [0, 1], - outputRange: [outputRangeMultiplier * (isSmallScreenWidth ? screen.width : variables.sideBarWidth), 0], - extrapolate: 'clamp', - }), - inverted, - ); - - const cardStyle = StyleUtils.getCardStyles(screen.width); - - if (!isFullScreenModal || isSmallScreenWidth) { - cardStyle.transform = [{translateX}]; - } - - return { - containerStyle: { - overflow: 'hidden', - }, - cardStyle, - }; - }; - -export default createModalCardStyleInterpolator; diff --git a/src/libs/Navigation/AppNavigator/createCustomStackNavigator/CustomRouter.ts b/src/libs/Navigation/AppNavigator/createResponsiveStackNavigator/CustomRouter.ts similarity index 97% rename from src/libs/Navigation/AppNavigator/createCustomStackNavigator/CustomRouter.ts rename to src/libs/Navigation/AppNavigator/createResponsiveStackNavigator/CustomRouter.ts index 411cbf1d26b0..b57d8c3d9faa 100644 --- a/src/libs/Navigation/AppNavigator/createCustomStackNavigator/CustomRouter.ts +++ b/src/libs/Navigation/AppNavigator/createResponsiveStackNavigator/CustomRouter.ts @@ -7,13 +7,13 @@ import getTopmostBottomTabRoute from '@libs/Navigation/getTopmostBottomTabRoute' import getTopmostCentralPaneRoute from '@libs/Navigation/getTopmostCentralPaneRoute'; import linkingConfig from '@libs/Navigation/linkingConfig'; import getAdaptedStateFromPath from '@libs/Navigation/linkingConfig/getAdaptedStateFromPath'; +import type {PlatformStackRouterOptions} from '@libs/Navigation/PlatformStackNavigation/types'; import type {NavigationPartialRoute, RootStackParamList, State} from '@libs/Navigation/types'; import {isCentralPaneName, isOnboardingFlowName} from '@libs/NavigationUtils'; import * as Welcome from '@userActions/Welcome'; import CONST from '@src/CONST'; import NAVIGATORS from '@src/NAVIGATORS'; import SCREENS from '@src/SCREENS'; -import type {ResponsiveStackNavigatorRouterOptions} from './types'; function insertRootRoute(state: State, routeToInsert: NavigationPartialRoute) { const nonModalRoutes = state.routes.filter( @@ -121,7 +121,7 @@ function shouldPreventReset(state: StackNavigationState, action: } } -function CustomRouter(options: ResponsiveStackNavigatorRouterOptions) { +function CustomRouter(options: PlatformStackRouterOptions) { const stackRouter = StackRouter(options); return { diff --git a/src/libs/Navigation/AppNavigator/createResponsiveStackNavigator/SearchRoute.tsx b/src/libs/Navigation/AppNavigator/createResponsiveStackNavigator/SearchRoute.tsx new file mode 100644 index 000000000000..2455587660ab --- /dev/null +++ b/src/libs/Navigation/AppNavigator/createResponsiveStackNavigator/SearchRoute.tsx @@ -0,0 +1,23 @@ +import React from 'react'; +import {View} from 'react-native'; +import useThemeStyles from '@hooks/useThemeStyles'; +import type {ExtraContentProps} from '@libs/Navigation/PlatformStackNavigation/types'; + +function SearchRoute({searchRoute, descriptors}: ExtraContentProps) { + const styles = useThemeStyles(); + + if (!searchRoute) { + return null; + } + + const key = searchRoute.key; + const descriptor = descriptors[key]; + + if (!descriptor) { + return null; + } + + return {descriptor.render()}; +} + +export default SearchRoute; diff --git a/src/libs/Navigation/AppNavigator/createResponsiveStackNavigator/index.tsx b/src/libs/Navigation/AppNavigator/createResponsiveStackNavigator/index.tsx new file mode 100644 index 000000000000..00b009efc089 --- /dev/null +++ b/src/libs/Navigation/AppNavigator/createResponsiveStackNavigator/index.tsx @@ -0,0 +1,25 @@ +import type {ParamListBase} from '@react-navigation/native'; +import {createNavigatorFactory} from '@react-navigation/native'; +import useNavigationResetOnLayoutChange from '@libs/Navigation/AppNavigator/useNavigationResetOnLayoutChange'; +import createPlatformStackNavigatorComponent from '@libs/Navigation/PlatformStackNavigation/createPlatformStackNavigatorComponent'; +import defaultPlatformStackScreenOptions from '@libs/Navigation/PlatformStackNavigation/defaultPlatformStackScreenOptions'; +import type {PlatformStackNavigationEventMap, PlatformStackNavigationOptions, PlatformStackNavigationState} from '@libs/Navigation/PlatformStackNavigation/types'; +import CustomRouter from './CustomRouter'; +import RenderSearchRoute from './SearchRoute'; +import useStateWithSearch from './useStateWithSearch'; + +const ResponsiveStackNavigatorComponent = createPlatformStackNavigatorComponent('ResponsiveStackNavigator', { + createRouter: CustomRouter, + defaultScreenOptions: defaultPlatformStackScreenOptions, + useCustomState: useStateWithSearch, + useCustomEffects: useNavigationResetOnLayoutChange, + ExtraContent: RenderSearchRoute, +}); + +function createResponsiveStackNavigator() { + return createNavigatorFactory, PlatformStackNavigationOptions, PlatformStackNavigationEventMap, typeof ResponsiveStackNavigatorComponent>( + ResponsiveStackNavigatorComponent, + )(); +} + +export default createResponsiveStackNavigator; diff --git a/src/libs/Navigation/AppNavigator/createResponsiveStackNavigator/useStateWithSearch.ts b/src/libs/Navigation/AppNavigator/createResponsiveStackNavigator/useStateWithSearch.ts new file mode 100644 index 000000000000..c2017c69edf2 --- /dev/null +++ b/src/libs/Navigation/AppNavigator/createResponsiveStackNavigator/useStateWithSearch.ts @@ -0,0 +1,77 @@ +import type {ParamListBase} from '@react-navigation/native'; +import useResponsiveLayout from '@hooks/useResponsiveLayout'; +import getTopmostCentralPaneRoute from '@libs/Navigation/getTopmostCentralPaneRoute'; +import type {CustomStateHookProps, PlatformStackNavigationState, PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types'; +import type {RootStackParamList, State} from '@libs/Navigation/types'; +import {isCentralPaneName} from '@libs/NavigationUtils'; +import SCREENS from '@src/SCREENS'; + +type Routes = PlatformStackNavigationState['routes']; +function reduceCentralPaneRoutes(routes: Routes): Routes { + const result: Routes = []; + let count = 0; + const reverseRoutes = [...routes].reverse(); + + reverseRoutes.forEach((route) => { + if (isCentralPaneName(route.name)) { + // Remove all central pane routes except the last 3. This will improve performance. + if (count < 3) { + result.push(route); + count++; + } + } else { + result.push(route); + } + }); + + return result.reverse(); +} + +function useStateWithSearch({state}: CustomStateHookProps) { + const routes = reduceCentralPaneRoutes(state.routes); + const {shouldUseNarrowLayout} = useResponsiveLayout(); + + if (shouldUseNarrowLayout) { + const isSearchCentralPane = (route: PlatformStackRouteProp) => + getTopmostCentralPaneRoute({routes: [route]} as State)?.name === SCREENS.SEARCH.CENTRAL_PANE; + + const lastRoute = routes.at(-1); + const lastSearchCentralPane = lastRoute && isSearchCentralPane(lastRoute) ? lastRoute : undefined; + const filteredRoutes = routes.filter((route) => !isSearchCentralPane(route)); + + // On narrow layout, if we are on /search route we want to hide all central pane routes and show only the bottom tab navigator. + if (lastSearchCentralPane) { + const filteredRoute = filteredRoutes.at(0); + if (filteredRoute) { + return { + stateToRender: { + ...state, + index: 0, + routes: [filteredRoute], + }, + searchRoute: lastSearchCentralPane, + }; + } + } + + return { + stateToRender: { + ...state, + index: filteredRoutes.length - 1, + routes: filteredRoutes, + }, + searchRoute: undefined, + }; + } + + return { + stateToRender: { + ...state, + index: routes.length - 1, + routes: [...routes], + }, + searchRoute: undefined, + }; +} + +export default useStateWithSearch; diff --git a/src/libs/Navigation/AppNavigator/defaultScreenOptions.ts b/src/libs/Navigation/AppNavigator/defaultScreenOptions.ts index 4015c43c679e..8d941799a81a 100644 --- a/src/libs/Navigation/AppNavigator/defaultScreenOptions.ts +++ b/src/libs/Navigation/AppNavigator/defaultScreenOptions.ts @@ -1,12 +1,14 @@ -import type {StackNavigationOptions} from '@react-navigation/stack'; +import type {PlatformStackNavigationOptions} from '@libs/Navigation/PlatformStackNavigation/types'; -const defaultScreenOptions: StackNavigationOptions = { - cardStyle: { - overflow: 'visible', - flex: 1, - }, +const defaultScreenOptions: PlatformStackNavigationOptions = { headerShown: false, animationTypeForReplace: 'push', + web: { + cardStyle: { + overflow: 'visible', + flex: 1, + }, + }, }; export default defaultScreenOptions; diff --git a/src/libs/Navigation/AppNavigator/getRootNavigatorScreenOptions.ts b/src/libs/Navigation/AppNavigator/getRootNavigatorScreenOptions.ts deleted file mode 100644 index e09f85936385..000000000000 --- a/src/libs/Navigation/AppNavigator/getRootNavigatorScreenOptions.ts +++ /dev/null @@ -1,141 +0,0 @@ -import type {StackCardInterpolationProps, StackNavigationOptions} from '@react-navigation/stack'; -import type {ThemeStyles} from '@styles/index'; -import type {StyleUtilsType} from '@styles/utils'; -import variables from '@styles/variables'; -import CONFIG from '@src/CONFIG'; -import createModalCardStyleInterpolator from './createModalCardStyleInterpolator'; -import getModalPresentationStyle from './getModalPresentationStyle'; - -type GetOnboardingModalNavigatorOptions = (shouldUseNarrowLayout: boolean) => StackNavigationOptions; - -type ScreenOptions = { - rightModalNavigator: StackNavigationOptions; - onboardingModalNavigator: GetOnboardingModalNavigatorOptions; - leftModalNavigator: StackNavigationOptions; - homeScreen: StackNavigationOptions; - fullScreen: StackNavigationOptions; - centralPaneNavigator: StackNavigationOptions; - bottomTab: StackNavigationOptions; -}; - -const commonScreenOptions: StackNavigationOptions = { - headerShown: false, - gestureDirection: 'horizontal', - animationEnabled: true, - cardOverlayEnabled: true, - animationTypeForReplace: 'push', -}; - -type GetRootNavigatorScreenOptions = (isSmallScreenWidth: boolean, styles: ThemeStyles, StyleUtils: StyleUtilsType) => ScreenOptions; - -const getRootNavigatorScreenOptions: GetRootNavigatorScreenOptions = (isSmallScreenWidth, themeStyles, StyleUtils) => { - const modalCardStyleInterpolator = createModalCardStyleInterpolator(StyleUtils); - - return { - rightModalNavigator: { - ...commonScreenOptions, - cardStyleInterpolator: (props: StackCardInterpolationProps) => modalCardStyleInterpolator(isSmallScreenWidth, false, false, props), - presentation: getModalPresentationStyle(), - - // We want pop in RHP since there are some flows that would work weird otherwise - animationTypeForReplace: 'pop', - cardStyle: { - ...StyleUtils.getNavigationModalCardStyle(), - - // This is necessary to cover translated sidebar with overlay. - width: isSmallScreenWidth ? '100%' : '200%', - // Excess space should be on the left so we need to position from right. - right: 0, - }, - }, - onboardingModalNavigator: (shouldUseNarrowLayout: boolean) => ({ - cardStyleInterpolator: (props: StackCardInterpolationProps) => modalCardStyleInterpolator(isSmallScreenWidth, false, shouldUseNarrowLayout, props), - headerShown: false, - animationEnabled: true, - cardOverlayEnabled: false, - presentation: 'transparentModal', - cardStyle: { - ...StyleUtils.getNavigationModalCardStyle(), - backgroundColor: 'transparent', - width: '100%', - top: 0, - left: 0, - position: 'fixed', - }, - }), - leftModalNavigator: { - ...commonScreenOptions, - cardStyleInterpolator: (props) => modalCardStyleInterpolator(isSmallScreenWidth, false, false, props), - presentation: getModalPresentationStyle(), - gestureDirection: 'horizontal-inverted', - - // We want pop in LHP since there are some flows that would work weird otherwise - animationTypeForReplace: 'pop', - cardStyle: { - ...StyleUtils.getNavigationModalCardStyle(), - - // This is necessary to cover translated sidebar with overlay. - width: isSmallScreenWidth ? '100%' : '200%', - - // LHP should be displayed in place of the sidebar - left: isSmallScreenWidth ? 0 : -variables.sideBarWidth, - }, - }, - homeScreen: { - title: CONFIG.SITE_TITLE, - ...commonScreenOptions, - cardStyleInterpolator: (props: StackCardInterpolationProps) => modalCardStyleInterpolator(isSmallScreenWidth, false, false, props), - - cardStyle: { - ...StyleUtils.getNavigationModalCardStyle(), - width: isSmallScreenWidth ? '100%' : variables.sideBarWidth, - - // We need to shift the sidebar to not be covered by the StackNavigator so it can be clickable. - marginLeft: isSmallScreenWidth ? 0 : -variables.sideBarWidth, - ...(isSmallScreenWidth ? {} : themeStyles.borderRight), - }, - }, - - fullScreen: { - ...commonScreenOptions, - cardStyleInterpolator: (props: StackCardInterpolationProps) => modalCardStyleInterpolator(isSmallScreenWidth, true, false, props), - cardStyle: { - ...StyleUtils.getNavigationModalCardStyle(), - - // This is necessary to cover whole screen. Including translated sidebar. - marginLeft: isSmallScreenWidth ? 0 : -variables.sideBarWidth, - }, - - // We need to turn off animation for the full screen to avoid delay when closing screens. - animationEnabled: isSmallScreenWidth, - }, - - centralPaneNavigator: { - title: CONFIG.SITE_TITLE, - ...commonScreenOptions, - animationEnabled: isSmallScreenWidth, - cardStyleInterpolator: (props: StackCardInterpolationProps) => modalCardStyleInterpolator(isSmallScreenWidth, true, false, props), - - cardStyle: { - ...StyleUtils.getNavigationModalCardStyle(), - paddingRight: isSmallScreenWidth ? 0 : variables.sideBarWidth, - }, - }, - - bottomTab: { - ...commonScreenOptions, - cardStyleInterpolator: (props: StackCardInterpolationProps) => modalCardStyleInterpolator(isSmallScreenWidth, false, false, props), - - cardStyle: { - ...StyleUtils.getNavigationModalCardStyle(), - width: isSmallScreenWidth ? '100%' : variables.sideBarWidth, - - // We need to shift the sidebar to not be covered by the StackNavigator so it can be clickable. - marginLeft: isSmallScreenWidth ? 0 : -variables.sideBarWidth, - ...(isSmallScreenWidth ? {} : themeStyles.borderRight), - }, - }, - }; -}; - -export default getRootNavigatorScreenOptions; diff --git a/src/libs/Navigation/AppNavigator/hideKeyboardOnSwipe.ts b/src/libs/Navigation/AppNavigator/hideKeyboardOnSwipe.ts new file mode 100644 index 000000000000..261d2fcb460e --- /dev/null +++ b/src/libs/Navigation/AppNavigator/hideKeyboardOnSwipe.ts @@ -0,0 +1,9 @@ +import type {PlatformStackNavigationOptions} from '@libs/Navigation/PlatformStackNavigation/types'; + +const hideKeyboardOnSwipe: PlatformStackNavigationOptions = { + // temporary solution - better to hide a keyboard than see keyboard flickering + // see https://github.com/software-mansion/react-native-screens/issues/2021 for more details + keyboardHandlingEnabled: true, +}; + +export default hideKeyboardOnSwipe; diff --git a/src/libs/Navigation/AppNavigator/useModalCardStyleInterpolator.ts b/src/libs/Navigation/AppNavigator/useModalCardStyleInterpolator.ts new file mode 100644 index 000000000000..f4f6179782cc --- /dev/null +++ b/src/libs/Navigation/AppNavigator/useModalCardStyleInterpolator.ts @@ -0,0 +1,66 @@ +import type {StackCardInterpolatedStyle, StackCardInterpolationProps} from '@react-navigation/stack'; +import {Animated} from 'react-native'; +import useResponsiveLayout from '@hooks/useResponsiveLayout'; +import useStyleUtils from '@hooks/useStyleUtils'; +import variables from '@styles/variables'; + +type ModalCardStyleInterpolatorProps = { + isOnboardingModal?: boolean; + isFullScreenModal?: boolean; + shouldFadeScreen?: boolean; + props: StackCardInterpolationProps; + outputRangeMultiplier?: number; +}; + +type ModalCardStyleInterpolator = (props: ModalCardStyleInterpolatorProps) => StackCardInterpolatedStyle; + +const useModalCardStyleInterpolator = (): ModalCardStyleInterpolator => { + const {shouldUseNarrowLayout, onboardingIsMediumOrLargerScreenWidth} = useResponsiveLayout(); + const StyleUtils = useStyleUtils(); + + const modalCardStyleInterpolator: ModalCardStyleInterpolator = ({ + props: { + current: {progress}, + inverted, + layouts: {screen}, + }, + isOnboardingModal = false, + isFullScreenModal = false, + shouldFadeScreen = false, + outputRangeMultiplier = 1, + }) => { + if (isOnboardingModal ? onboardingIsMediumOrLargerScreenWidth : shouldFadeScreen) { + return { + cardStyle: { + opacity: progress, + }, + }; + } + + const translateX = Animated.multiply( + progress.interpolate({ + inputRange: [0, 1], + outputRange: [outputRangeMultiplier * (shouldUseNarrowLayout ? screen.width : variables.sideBarWidth), 0], + extrapolate: 'clamp', + }), + inverted, + ); + + const cardStyle = StyleUtils.getCardStyles(screen.width); + + if (!isFullScreenModal || shouldUseNarrowLayout) { + cardStyle.transform = [{translateX}]; + } + + return { + containerStyle: { + overflow: 'hidden', + }, + cardStyle, + }; + }; + + return modalCardStyleInterpolator; +}; + +export default useModalCardStyleInterpolator; diff --git a/src/libs/Navigation/AppNavigator/useModalNavigatorOptions.ts b/src/libs/Navigation/AppNavigator/useModalNavigatorOptions.ts new file mode 100644 index 000000000000..7d336221f92b --- /dev/null +++ b/src/libs/Navigation/AppNavigator/useModalNavigatorOptions.ts @@ -0,0 +1,34 @@ +import {CardStyleInterpolators} from '@react-navigation/stack'; +import type {GestureDirection} from '@react-navigation/stack/lib/typescript/src/types'; +import useThemeStyles from '@hooks/useThemeStyles'; +import type {PlatformStackNavigationOptions} from '@libs/Navigation/PlatformStackNavigation/types'; + +/** + * Modal stack navigator screen options generator function + * @param gestureDirection - The gesture direction of dismissing the modal + * @returns The screen options object + */ +const useModalNavigatorOptions = (gestureDirection: GestureDirection = 'horizontal'): PlatformStackNavigationOptions => { + const themeStyles = useThemeStyles(); + + let universalGestureDirection: PlatformStackNavigationOptions['gestureDirection'] | undefined; + let webGestureDirection: GestureDirection | undefined; + if (gestureDirection === 'horizontal' || gestureDirection === 'vertical') { + universalGestureDirection = gestureDirection; + } else { + webGestureDirection = gestureDirection; + } + + return { + headerShown: false, + animation: 'slide_from_right', + gestureDirection: universalGestureDirection, + web: { + cardStyle: themeStyles.navigationScreenCardStyle, + cardStyleInterpolator: CardStyleInterpolators.forHorizontalIOS, + ...(webGestureDirection && {gestureDirection: webGestureDirection}), + }, + }; +}; + +export default useModalNavigatorOptions; diff --git a/src/libs/Navigation/AppNavigator/useNavigationResetOnLayoutChange.ts b/src/libs/Navigation/AppNavigator/useNavigationResetOnLayoutChange.ts new file mode 100644 index 000000000000..79ea32f9de2a --- /dev/null +++ b/src/libs/Navigation/AppNavigator/useNavigationResetOnLayoutChange.ts @@ -0,0 +1,20 @@ +import {useEffect} from 'react'; +import useResponsiveLayout from '@hooks/useResponsiveLayout'; +import navigationRef from '@libs/Navigation/navigationRef'; +import type {CustomEffectsHookProps} from '@libs/Navigation/PlatformStackNavigation/types'; + +function useNavigationResetOnLayoutChange({navigation}: CustomEffectsHookProps) { + const {shouldUseNarrowLayout} = useResponsiveLayout(); + + useEffect(() => { + if (!navigationRef.isReady()) { + return; + } + // We need to separately reset state of this navigator to trigger getRehydratedState. + navigation.reset(navigation.getState()); + // eslint-disable-next-line react-compiler/react-compiler + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [shouldUseNarrowLayout]); +} + +export default useNavigationResetOnLayoutChange; diff --git a/src/libs/Navigation/AppNavigator/useRootNavigatorOptions.ts b/src/libs/Navigation/AppNavigator/useRootNavigatorOptions.ts new file mode 100644 index 000000000000..0ec7f82ee05f --- /dev/null +++ b/src/libs/Navigation/AppNavigator/useRootNavigatorOptions.ts @@ -0,0 +1,152 @@ +import type {StackCardInterpolationProps} from '@react-navigation/stack'; +import useResponsiveLayout from '@hooks/useResponsiveLayout'; +import useStyleUtils from '@hooks/useStyleUtils'; +import useThemeStyles from '@hooks/useThemeStyles'; +import type {PlatformStackNavigationOptions} from '@libs/Navigation/PlatformStackNavigation/types'; +import variables from '@styles/variables'; +import CONFIG from '@src/CONFIG'; +import hideKeyboardOnSwipe from './hideKeyboardOnSwipe'; +import useModalCardStyleInterpolator from './useModalCardStyleInterpolator'; + +type RootNavigatorOptions = { + rightModalNavigator: PlatformStackNavigationOptions; + onboardingModalNavigator: PlatformStackNavigationOptions; + leftModalNavigator: PlatformStackNavigationOptions; + homeScreen: PlatformStackNavigationOptions; + fullScreen: PlatformStackNavigationOptions; + centralPaneNavigator: PlatformStackNavigationOptions; + bottomTab: PlatformStackNavigationOptions; +}; + +const commonScreenOptions: PlatformStackNavigationOptions = { + web: { + cardOverlayEnabled: true, + }, +}; + +const useRootNavigatorOptions = () => { + const themeStyles = useThemeStyles(); + const StyleUtils = useStyleUtils(); + const {isSmallScreenWidth} = useResponsiveLayout(); + const modalCardStyleInterpolator = useModalCardStyleInterpolator(); + + return { + rightModalNavigator: { + ...commonScreenOptions, + ...hideKeyboardOnSwipe, + presentation: 'transparentModal', + animation: 'slide_from_right', + // We want pop in RHP since there are some flows that would work weird otherwise + animationTypeForReplace: 'pop', + web: { + cardStyle: { + ...StyleUtils.getNavigationModalCardStyle(), + // This is necessary to cover translated sidebar with overlay. + width: isSmallScreenWidth ? '100%' : '200%', + // Excess space should be on the left so we need to position from right. + right: 0, + }, + cardStyleInterpolator: (props: StackCardInterpolationProps) => modalCardStyleInterpolator({props}), + }, + }, + onboardingModalNavigator: { + presentation: 'transparentModal', + web: { + cardOverlayEnabled: false, + cardStyle: { + ...StyleUtils.getNavigationModalCardStyle(), + backgroundColor: 'transparent', + width: '100%', + top: 0, + left: 0, + position: 'fixed', + }, + cardStyleInterpolator: (props: StackCardInterpolationProps) => modalCardStyleInterpolator({props, isOnboardingModal: true}), + }, + }, + leftModalNavigator: { + ...commonScreenOptions, + presentation: 'transparentModal', + animation: 'slide_from_left', + animationTypeForReplace: 'pop', + native: { + customAnimationOnGesture: true, + }, + web: { + cardStyleInterpolator: (props: StackCardInterpolationProps) => modalCardStyleInterpolator({props}), + // We want pop in LHP since there are some flows that would work weird otherwise + cardStyle: { + ...StyleUtils.getNavigationModalCardStyle(), + + // This is necessary to cover translated sidebar with overlay. + width: isSmallScreenWidth ? '100%' : '200%', + + // LHP should be displayed in place of the sidebar + left: isSmallScreenWidth ? 0 : -variables.sideBarWidth, + }, + }, + }, + homeScreen: { + ...commonScreenOptions, + title: CONFIG.SITE_TITLE, + web: { + // Note: The card* properties won't be applied on mobile platforms, as they use the native defaults. + cardStyleInterpolator: (props: StackCardInterpolationProps) => modalCardStyleInterpolator({props}), + cardStyle: { + ...StyleUtils.getNavigationModalCardStyle(), + width: isSmallScreenWidth ? '100%' : variables.sideBarWidth, + + // We need to shift the sidebar to not be covered by the StackNavigator so it can be clickable. + marginLeft: isSmallScreenWidth ? 0 : -variables.sideBarWidth, + ...(isSmallScreenWidth ? {} : themeStyles.borderRight), + }, + }, + }, + + fullScreen: { + ...commonScreenOptions, + // We need to turn off animation for the full screen to avoid delay when closing screens. + animation: isSmallScreenWidth ? 'slide_from_right' : 'none', + web: { + cardStyleInterpolator: (props: StackCardInterpolationProps) => modalCardStyleInterpolator({props, isFullScreenModal: true}), + cardStyle: { + ...StyleUtils.getNavigationModalCardStyle(), + + // This is necessary to cover whole screen. Including translated sidebar. + marginLeft: isSmallScreenWidth ? 0 : -variables.sideBarWidth, + }, + }, + }, + + centralPaneNavigator: { + ...commonScreenOptions, + ...hideKeyboardOnSwipe, + title: CONFIG.SITE_TITLE, + animation: isSmallScreenWidth ? undefined : 'none', + web: { + cardStyleInterpolator: (props: StackCardInterpolationProps) => modalCardStyleInterpolator({props, isFullScreenModal: true}), + cardStyle: { + ...StyleUtils.getNavigationModalCardStyle(), + paddingRight: isSmallScreenWidth ? 0 : variables.sideBarWidth, + }, + }, + }, + + bottomTab: { + ...commonScreenOptions, + web: { + cardStyleInterpolator: (props: StackCardInterpolationProps) => modalCardStyleInterpolator({props}), + cardStyle: { + ...StyleUtils.getNavigationModalCardStyle(), + width: isSmallScreenWidth ? '100%' : variables.sideBarWidth, + + // We need to shift the sidebar to not be covered by the StackNavigator so it can be clickable. + marginLeft: isSmallScreenWidth ? 0 : -variables.sideBarWidth, + ...(isSmallScreenWidth ? {} : themeStyles.borderRight), + }, + }, + }, + } satisfies RootNavigatorOptions; +}; + +export default useRootNavigatorOptions; diff --git a/src/libs/Navigation/PlatformStackNavigation/createPlatformStackNavigator.tsx b/src/libs/Navigation/PlatformStackNavigation/createPlatformStackNavigator.tsx new file mode 100644 index 000000000000..374887648bb0 --- /dev/null +++ b/src/libs/Navigation/PlatformStackNavigation/createPlatformStackNavigator.tsx @@ -0,0 +1,15 @@ +import {createNavigatorFactory} from '@react-navigation/native'; +import type {ParamListBase} from '@react-navigation/native'; +import createPlatformStackNavigatorComponent from './createPlatformStackNavigatorComponent'; +import defaultPlatformStackScreenOptions from './defaultPlatformStackScreenOptions'; +import type {PlatformStackNavigationEventMap, PlatformStackNavigationOptions, PlatformStackNavigationState} from './types'; + +const PlatformStackNavigatorComponent = createPlatformStackNavigatorComponent('PlatformStackNavigator', {defaultScreenOptions: defaultPlatformStackScreenOptions}); + +function createPlatformStackNavigator() { + return createNavigatorFactory, PlatformStackNavigationOptions, PlatformStackNavigationEventMap, typeof PlatformStackNavigatorComponent>( + PlatformStackNavigatorComponent, + )(); +} + +export default createPlatformStackNavigator; diff --git a/src/libs/Navigation/PlatformStackNavigation/createPlatformStackNavigatorComponent/index.native.tsx b/src/libs/Navigation/PlatformStackNavigation/createPlatformStackNavigatorComponent/index.native.tsx new file mode 100644 index 000000000000..9c2cc3187504 --- /dev/null +++ b/src/libs/Navigation/PlatformStackNavigation/createPlatformStackNavigatorComponent/index.native.tsx @@ -0,0 +1,106 @@ +import type {ParamListBase, StackActionHelpers} from '@react-navigation/native'; +import {StackRouter, useNavigationBuilder} from '@react-navigation/native'; +import {NativeStackView} from '@react-navigation/native-stack'; +import type {NativeStackNavigationEventMap, NativeStackNavigationOptions} from '@react-navigation/native-stack'; +import React, {useMemo} from 'react'; +import convertToNativeNavigationOptions from '@libs/Navigation/PlatformStackNavigation/navigationOptions/convertToNativeNavigationOptions'; +import type { + CreatePlatformStackNavigatorComponentOptions, + CustomCodeProps, + PlatformNavigationBuilderOptions, + PlatformStackNavigationOptions, + PlatformStackNavigationState, + PlatformStackNavigatorProps, + PlatformStackRouterOptions, +} from '@libs/Navigation/PlatformStackNavigation/types'; + +function createPlatformStackNavigatorComponent( + displayName: string, + options?: CreatePlatformStackNavigatorComponentOptions, +) { + const createRouter = options?.createRouter ?? StackRouter; + const defaultScreenOptions = options?.defaultScreenOptions; + const useCustomState = options?.useCustomState ?? (() => ({stateToRender: undefined, searchRoute: undefined})); + const useCustomEffects = options?.useCustomEffects ?? (() => undefined); + const ExtraContent = options?.ExtraContent; + const NavigationContentWrapper = options?.NavigationContentWrapper; + + function PlatformNavigator({id, initialRouteName, screenOptions, screenListeners, children, ...props}: PlatformStackNavigatorProps) { + const { + navigation, + state: originalState, + descriptors, + NavigationContent, + } = useNavigationBuilder< + PlatformStackNavigationState, + RouterOptions, + StackActionHelpers, + NativeStackNavigationOptions, + NativeStackNavigationEventMap, + PlatformStackNavigationOptions + >( + createRouter, + { + id, + children, + screenOptions, + defaultScreenOptions, + screenListeners, + initialRouteName, + } as PlatformNavigationBuilderOptions, + convertToNativeNavigationOptions, + ); + + const customCodeProps = useMemo>>( + () => ({ + state: originalState, + navigation, + descriptors, + displayName, + }), + [originalState, navigation, descriptors], + ); + + const {stateToRender, searchRoute} = useCustomState(customCodeProps); + const state = useMemo(() => stateToRender ?? originalState, [originalState, stateToRender]); + const customCodePropsWithCustomState = useMemo>>( + () => ({ + ...customCodeProps, + state, + searchRoute, + }), + [customCodeProps, state, searchRoute], + ); + + // Executes custom effects defined in "useCustomEffects" navigator option. + useCustomEffects(customCodePropsWithCustomState); + + const Content = useMemo( + () => ( + + + + {ExtraContent && ( + // eslint-disable-next-line react/jsx-props-no-spreading + + )} + + ), + [NavigationContent, customCodePropsWithCustomState, descriptors, navigation, props, state], + ); + + // eslint-disable-next-line react/jsx-props-no-spreading + return NavigationContentWrapper === undefined ? Content : {Content}; + } + PlatformNavigator.displayName = displayName; + + return PlatformNavigator; +} + +export default createPlatformStackNavigatorComponent; diff --git a/src/libs/Navigation/PlatformStackNavigation/createPlatformStackNavigatorComponent/index.tsx b/src/libs/Navigation/PlatformStackNavigation/createPlatformStackNavigatorComponent/index.tsx new file mode 100644 index 000000000000..ab698ad08707 --- /dev/null +++ b/src/libs/Navigation/PlatformStackNavigation/createPlatformStackNavigatorComponent/index.tsx @@ -0,0 +1,106 @@ +import type {ParamListBase, StackActionHelpers} from '@react-navigation/native'; +import {StackRouter, useNavigationBuilder} from '@react-navigation/native'; +import type {StackNavigationEventMap, StackNavigationOptions} from '@react-navigation/stack'; +import {StackView} from '@react-navigation/stack'; +import React, {useMemo} from 'react'; +import convertToWebNavigationOptions from '@libs/Navigation/PlatformStackNavigation/navigationOptions/convertToWebNavigationOptions'; +import type { + CreatePlatformStackNavigatorComponentOptions, + CustomCodeProps, + PlatformNavigationBuilderOptions, + PlatformStackNavigationOptions, + PlatformStackNavigationState, + PlatformStackNavigatorProps, + PlatformStackRouterOptions, +} from '@libs/Navigation/PlatformStackNavigation/types'; + +function createPlatformStackNavigatorComponent( + displayName: string, + options?: CreatePlatformStackNavigatorComponentOptions, +) { + const createRouter = options?.createRouter ?? StackRouter; + const useCustomState = options?.useCustomState ?? (() => ({stateToRender: undefined, searchRoute: undefined})); + const defaultScreenOptions = options?.defaultScreenOptions; + const ExtraContent = options?.ExtraContent; + const NavigationContentWrapper = options?.NavigationContentWrapper; + const useCustomEffects = options?.useCustomEffects ?? (() => undefined); + + function PlatformNavigator({id, initialRouteName, screenOptions, screenListeners, children, ...props}: PlatformStackNavigatorProps) { + const { + navigation, + state: originalState, + descriptors, + NavigationContent, + } = useNavigationBuilder< + PlatformStackNavigationState, + RouterOptions, + StackActionHelpers, + StackNavigationOptions, + StackNavigationEventMap, + PlatformStackNavigationOptions + >( + createRouter, + { + id, + children, + screenOptions, + defaultScreenOptions, + screenListeners, + initialRouteName, + } as PlatformNavigationBuilderOptions, + convertToWebNavigationOptions, + ); + + const customCodeProps = useMemo>>( + () => ({ + state: originalState, + navigation, + descriptors, + displayName, + }), + [originalState, navigation, descriptors], + ); + + const {stateToRender, searchRoute} = useCustomState(customCodeProps); + const state = useMemo(() => stateToRender ?? originalState, [originalState, stateToRender]); + const customCodePropsWithCustomState = useMemo>>( + () => ({ + ...customCodeProps, + state, + searchRoute, + }), + [customCodeProps, state, searchRoute], + ); + + // Executes custom effects defined in "useCustomEffects" navigator option. + useCustomEffects(customCodePropsWithCustomState); + + const Content = useMemo( + () => ( + + + + {ExtraContent && ( + // eslint-disable-next-line react/jsx-props-no-spreading + + )} + + ), + [NavigationContent, customCodePropsWithCustomState, descriptors, navigation, props, state], + ); + + // eslint-disable-next-line react/jsx-props-no-spreading + return NavigationContentWrapper === undefined ? Content : {Content}; + } + PlatformNavigator.displayName = displayName; + + return PlatformNavigator; +} + +export default createPlatformStackNavigatorComponent; diff --git a/src/libs/Navigation/PlatformStackNavigation/defaultPlatformStackScreenOptions.ts b/src/libs/Navigation/PlatformStackNavigation/defaultPlatformStackScreenOptions.ts new file mode 100644 index 000000000000..da84ab3b2d0f --- /dev/null +++ b/src/libs/Navigation/PlatformStackNavigation/defaultPlatformStackScreenOptions.ts @@ -0,0 +1,8 @@ +import type {PlatformStackNavigationOptions} from './types'; + +const defaultPlatformStackScreenOptions: PlatformStackNavigationOptions = { + animation: 'slide_from_right', + headerShown: false, +}; + +export default defaultPlatformStackScreenOptions; diff --git a/src/libs/Navigation/PlatformStackNavigation/navigationOptions/animation/none/index.native.ts b/src/libs/Navigation/PlatformStackNavigation/navigationOptions/animation/none/index.native.ts new file mode 100644 index 000000000000..76050b1f049a --- /dev/null +++ b/src/libs/Navigation/PlatformStackNavigation/navigationOptions/animation/none/index.native.ts @@ -0,0 +1,5 @@ +import type {NativeStackNavigationOptions} from '@react-navigation/native-stack'; + +const none: NativeStackNavigationOptions = {animation: 'none', gestureEnabled: false}; + +export default none; diff --git a/src/libs/Navigation/PlatformStackNavigation/navigationOptions/animation/none/index.ts b/src/libs/Navigation/PlatformStackNavigation/navigationOptions/animation/none/index.ts new file mode 100644 index 000000000000..c1724f9cfeef --- /dev/null +++ b/src/libs/Navigation/PlatformStackNavigation/navigationOptions/animation/none/index.ts @@ -0,0 +1,5 @@ +import type {StackNavigationOptions} from '@react-navigation/stack'; + +const none: StackNavigationOptions = {animationEnabled: false, gestureEnabled: false}; + +export default none; diff --git a/src/libs/Navigation/PlatformStackNavigation/navigationOptions/animation/slideFromBottom/index.native.ts b/src/libs/Navigation/PlatformStackNavigation/navigationOptions/animation/slideFromBottom/index.native.ts new file mode 100644 index 000000000000..7e36c811fe42 --- /dev/null +++ b/src/libs/Navigation/PlatformStackNavigation/navigationOptions/animation/slideFromBottom/index.native.ts @@ -0,0 +1,5 @@ +import type {NativeStackNavigationOptions} from '@react-navigation/native-stack'; + +const slideFromBottom: NativeStackNavigationOptions = {animation: 'slide_from_bottom'}; + +export default slideFromBottom; diff --git a/src/libs/Navigation/PlatformStackNavigation/navigationOptions/animation/slideFromBottom/index.ts b/src/libs/Navigation/PlatformStackNavigation/navigationOptions/animation/slideFromBottom/index.ts new file mode 100644 index 000000000000..c43388c52a67 --- /dev/null +++ b/src/libs/Navigation/PlatformStackNavigation/navigationOptions/animation/slideFromBottom/index.ts @@ -0,0 +1,5 @@ +import type {StackNavigationOptions} from '@react-navigation/stack'; + +const slideFromBottom: StackNavigationOptions = {animationEnabled: true, gestureDirection: 'vertical'}; + +export default slideFromBottom; diff --git a/src/libs/Navigation/PlatformStackNavigation/navigationOptions/animation/slideFromLeft/index.android.ts b/src/libs/Navigation/PlatformStackNavigation/navigationOptions/animation/slideFromLeft/index.android.ts new file mode 100644 index 000000000000..1a4df4a6c0a1 --- /dev/null +++ b/src/libs/Navigation/PlatformStackNavigation/navigationOptions/animation/slideFromLeft/index.android.ts @@ -0,0 +1,7 @@ +import type {NativeStackNavigationOptions} from '@react-navigation/native-stack'; + +// `slide_from_right` is resolved to `default` transition on iOS, but this transition causes issues on iOS +// const transition: NativeStackNavigationOptions['animation'] = 'slide_from_right'; +const slideFromLeft: NativeStackNavigationOptions = {animation: 'ios_from_left'}; + +export default slideFromLeft; diff --git a/src/libs/Navigation/PlatformStackNavigation/navigationOptions/animation/slideFromLeft/index.ios.ts b/src/libs/Navigation/PlatformStackNavigation/navigationOptions/animation/slideFromLeft/index.ios.ts new file mode 100644 index 000000000000..991dba98c50b --- /dev/null +++ b/src/libs/Navigation/PlatformStackNavigation/navigationOptions/animation/slideFromLeft/index.ios.ts @@ -0,0 +1,7 @@ +import type {NativeStackNavigationOptions} from '@react-navigation/native-stack'; + +// default transition is causing weird keyboard appearance: - https://github.com/Expensify/App/issues/37257 +// so we are using `simple_push` which is similar to default and not causing keyboard transition issues +const slideFromLeft: NativeStackNavigationOptions = {animation: 'slide_from_left'}; + +export default slideFromLeft; diff --git a/src/libs/Navigation/PlatformStackNavigation/navigationOptions/animation/slideFromLeft/index.ts b/src/libs/Navigation/PlatformStackNavigation/navigationOptions/animation/slideFromLeft/index.ts new file mode 100644 index 000000000000..d5598c93eb53 --- /dev/null +++ b/src/libs/Navigation/PlatformStackNavigation/navigationOptions/animation/slideFromLeft/index.ts @@ -0,0 +1,5 @@ +import type {StackNavigationOptions} from '@react-navigation/stack'; + +const slideFromLeft: StackNavigationOptions = {animationEnabled: true, gestureDirection: 'horizontal-inverted'}; + +export default slideFromLeft; diff --git a/src/libs/Navigation/PlatformStackNavigation/navigationOptions/animation/slideFromRight/index.android.ts b/src/libs/Navigation/PlatformStackNavigation/navigationOptions/animation/slideFromRight/index.android.ts new file mode 100644 index 000000000000..c66c20e07781 --- /dev/null +++ b/src/libs/Navigation/PlatformStackNavigation/navigationOptions/animation/slideFromRight/index.android.ts @@ -0,0 +1,5 @@ +import type {NativeStackNavigationOptions} from '@react-navigation/native-stack'; + +const transition: NativeStackNavigationOptions = {animation: 'ios_from_right'}; + +export default transition; diff --git a/src/libs/Navigation/PlatformStackNavigation/navigationOptions/animation/slideFromRight/index.ios.ts b/src/libs/Navigation/PlatformStackNavigation/navigationOptions/animation/slideFromRight/index.ios.ts new file mode 100644 index 000000000000..4f482b5024aa --- /dev/null +++ b/src/libs/Navigation/PlatformStackNavigation/navigationOptions/animation/slideFromRight/index.ios.ts @@ -0,0 +1,7 @@ +import type {NativeStackNavigationOptions} from '@react-navigation/native-stack'; + +// default transition is causing weird keyboard appearance: - https://github.com/Expensify/App/issues/37257 +// so we are using `simple_push` which is similar to default and not causing keyboard transition issues +const transition: NativeStackNavigationOptions = {animation: 'simple_push'}; + +export default transition; diff --git a/src/libs/Navigation/PlatformStackNavigation/navigationOptions/animation/slideFromRight/index.ts b/src/libs/Navigation/PlatformStackNavigation/navigationOptions/animation/slideFromRight/index.ts new file mode 100644 index 000000000000..b6b6c8c74e48 --- /dev/null +++ b/src/libs/Navigation/PlatformStackNavigation/navigationOptions/animation/slideFromRight/index.ts @@ -0,0 +1,5 @@ +import type {StackNavigationOptions} from '@react-navigation/stack'; + +const slideFromRight: StackNavigationOptions = {animationEnabled: true, gestureDirection: 'horizontal'}; + +export default slideFromRight; diff --git a/src/libs/Navigation/PlatformStackNavigation/navigationOptions/animation/withAnimation.ts b/src/libs/Navigation/PlatformStackNavigation/navigationOptions/animation/withAnimation.ts new file mode 100644 index 000000000000..1d1eee595c71 --- /dev/null +++ b/src/libs/Navigation/PlatformStackNavigation/navigationOptions/animation/withAnimation.ts @@ -0,0 +1,26 @@ +import type {NativeStackNavigationOptions} from '@react-navigation/native-stack'; +import type {StackNavigationOptions} from '@react-navigation/stack'; +import type {PlatformStackNavigationOptions} from '@libs/Navigation/PlatformStackNavigation/types'; +import none from './none'; +import slideFromBottom from './slideFromBottom'; +import slideFromLeft from './slideFromLeft'; +import slideFromRight from './slideFromRight'; + +function withAnimation( + screenOptions: PlatformStackNavigationOptions, +): PlatformSpecificNavigationOptions { + switch (screenOptions?.animation) { + case 'slide_from_left': + return slideFromLeft as PlatformSpecificNavigationOptions; + case 'slide_from_right': + return slideFromRight as PlatformSpecificNavigationOptions; + case 'modal': + return slideFromBottom as PlatformSpecificNavigationOptions; + case 'none': + return none as PlatformSpecificNavigationOptions; + default: + return {} as PlatformSpecificNavigationOptions; + } +} + +export default withAnimation; diff --git a/src/libs/Navigation/PlatformStackNavigation/navigationOptions/buildPlatformSpecificNavigationOptions.ts b/src/libs/Navigation/PlatformStackNavigation/navigationOptions/buildPlatformSpecificNavigationOptions.ts new file mode 100644 index 000000000000..f70db4448746 --- /dev/null +++ b/src/libs/Navigation/PlatformStackNavigation/navigationOptions/buildPlatformSpecificNavigationOptions.ts @@ -0,0 +1,17 @@ +import type {NativeStackNavigationOptions} from '@react-navigation/native-stack'; +import type {StackNavigationOptions} from '@react-navigation/stack'; +import type {CommonStackNavigationOptions, PlatformStackNavigationOptions} from '@libs/Navigation/PlatformStackNavigation/types'; +import withAnimation from './animation/withAnimation'; + +const getCommonNavigationOptions = (screenOptions: PlatformStackNavigationOptions | undefined): CommonStackNavigationOptions => + screenOptions === undefined ? {} : (({animation, keyboardHandlingEnabled, web, native, ...rest}: PlatformStackNavigationOptions) => rest)(screenOptions); + +const buildPlatformSpecificNavigationOptions = ( + screenOptions: PlatformStackNavigationOptions, +): PlatformSpecificNavigationOptions => ({ + keyboardHandlingEnabled: screenOptions.keyboardHandlingEnabled, + ...withAnimation(screenOptions), + ...getCommonNavigationOptions(screenOptions), +}); + +export default buildPlatformSpecificNavigationOptions; diff --git a/src/libs/Navigation/PlatformStackNavigation/navigationOptions/convertToNativeNavigationOptions.ts b/src/libs/Navigation/PlatformStackNavigation/navigationOptions/convertToNativeNavigationOptions.ts new file mode 100644 index 000000000000..15d21981a169 --- /dev/null +++ b/src/libs/Navigation/PlatformStackNavigation/navigationOptions/convertToNativeNavigationOptions.ts @@ -0,0 +1,24 @@ +import type {ParamListBase, ScreenOptionsOrCallback} from '@react-navigation/native'; +import type {NativeStackNavigationOptions} from '@react-navigation/native-stack'; +import {isRouteBasedScreenOptions} from '@libs/Navigation/PlatformStackNavigation/types'; +import type {PlatformStackNavigationOptions, PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; +import buildPlatformSpecificNavigationOptions from './buildPlatformSpecificNavigationOptions'; + +function convertToNativeNavigationOptions( + screenOptions: ScreenOptionsOrCallback | undefined, +): ScreenOptionsOrCallback | undefined { + if (screenOptions === undefined) { + return undefined; + } + + if (isRouteBasedScreenOptions(screenOptions)) { + return (p: PlatformStackScreenProps) => { + const routeBasedScreenOptions = screenOptions(p); + return {...buildPlatformSpecificNavigationOptions(routeBasedScreenOptions), ...routeBasedScreenOptions.native}; + }; + } + + return {...buildPlatformSpecificNavigationOptions(screenOptions), ...screenOptions.native}; +} + +export default convertToNativeNavigationOptions; diff --git a/src/libs/Navigation/PlatformStackNavigation/navigationOptions/convertToWebNavigationOptions.ts b/src/libs/Navigation/PlatformStackNavigation/navigationOptions/convertToWebNavigationOptions.ts new file mode 100644 index 000000000000..941d5d51417d --- /dev/null +++ b/src/libs/Navigation/PlatformStackNavigation/navigationOptions/convertToWebNavigationOptions.ts @@ -0,0 +1,23 @@ +import type {ParamListBase, ScreenOptionsOrCallback} from '@react-navigation/native'; +import type {StackNavigationOptions} from '@react-navigation/stack'; +import type {PlatformStackNavigationOptions, PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; +import {isRouteBasedScreenOptions} from '@libs/Navigation/PlatformStackNavigation/types'; +import buildPlatformSpecificNavigationOptions from './buildPlatformSpecificNavigationOptions'; + +function convertToWebNavigationOptions(screenOptions: ScreenOptionsOrCallback | undefined): ScreenOptionsOrCallback | undefined { + if (screenOptions === undefined) { + return undefined; + } + + if (isRouteBasedScreenOptions(screenOptions)) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + return (p: PlatformStackScreenProps) => { + const routeBasedScreenOptions = screenOptions(p); + return {...buildPlatformSpecificNavigationOptions(routeBasedScreenOptions), ...routeBasedScreenOptions.web}; + }; + } + + return {...buildPlatformSpecificNavigationOptions(screenOptions), ...screenOptions.web}; +} + +export default convertToWebNavigationOptions; diff --git a/src/libs/Navigation/PlatformStackNavigation/types/NavigationBuilder.ts b/src/libs/Navigation/PlatformStackNavigation/types/NavigationBuilder.ts new file mode 100644 index 000000000000..821584f58645 --- /dev/null +++ b/src/libs/Navigation/PlatformStackNavigation/types/NavigationBuilder.ts @@ -0,0 +1,66 @@ +// Represents the options passed to useNavigationBuilder for creating a custom navigation builder, +import type { + DefaultNavigatorOptions, + Descriptor, + EventMapBase, + NavigationBuilderOptions, + NavigationHelpers, + NavigationProp, + ParamListBase, + RouteProp, + StackActionHelpers, + useNavigationBuilder, +} from '@react-navigation/native'; +import type {PlatformSpecificEventMap, PlatformSpecificNavigationOptions, PlatformStackNavigationOptions, PlatformStackNavigationState, PlatformStackRouterOptions} from '.'; + +// Represents the options passed to useNavigationBuilder for creating a custom navigation builder, +// using the abstracted and custom types from PlatformStackNavigation. +type PlatformNavigationBuilderOptions< + NavigationOptions extends PlatformSpecificNavigationOptions, + EventMap extends PlatformSpecificEventMap & EventMapBase, + ParamList extends ParamListBase = ParamListBase, + RouterOptions extends PlatformStackRouterOptions = PlatformStackRouterOptions, +> = DefaultNavigatorOptions, NavigationOptions, EventMap> & NavigationBuilderOptions & RouterOptions; + +// Represents the return type of the useNavigationBuilder function using the types from PlatformStackNavigation. +type PlatformNavigationBuilderResult< + NavigationOptions extends PlatformSpecificNavigationOptions, + EventMap extends PlatformSpecificEventMap & EventMapBase, + ParamList extends ParamListBase = ParamListBase, + RouterOptions extends PlatformStackRouterOptions = PlatformStackRouterOptions, + ActionHelpers extends StackActionHelpers = StackActionHelpers, +> = ReturnType, RouterOptions, ActionHelpers, PlatformStackNavigationOptions, EventMap, NavigationOptions>>; + +// Represents the type of the navigation object returned by useNavigationBuilder +type PlatformNavigationBuilderNavigation< + EventMap extends PlatformSpecificEventMap & EventMapBase, + ParamList extends ParamListBase = ParamListBase, + ActionHelpers extends StackActionHelpers = StackActionHelpers, +> = NavigationHelpers & ActionHelpers; + +// Represents the type of a single descripter returned by useNavigationBuilder +type PlatformNavigationBuilderDescriptor< + NavigationOptions extends PlatformSpecificNavigationOptions, + EventMap extends PlatformSpecificEventMap & EventMapBase, + ParamList extends ParamListBase = ParamListBase, +> = Descriptor< + NavigationOptions, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + NavigationProp, NavigationOptions, EventMap>, + RouteProp +>; + +// Represents the type of the descriptors object returned by useNavigationBuilder +type PlatformNavigationBuilderDescriptors< + NavigationOptions extends PlatformSpecificNavigationOptions, + EventMap extends PlatformSpecificEventMap & EventMapBase, + ParamList extends ParamListBase = ParamListBase, +> = Record>; + +export type { + PlatformNavigationBuilderOptions, + PlatformNavigationBuilderResult, + PlatformNavigationBuilderNavigation, + PlatformNavigationBuilderDescriptor, + PlatformNavigationBuilderDescriptors, +}; diff --git a/src/libs/Navigation/PlatformStackNavigation/types/NavigationOptions.ts b/src/libs/Navigation/PlatformStackNavigation/types/NavigationOptions.ts new file mode 100644 index 000000000000..30aedf48dfbc --- /dev/null +++ b/src/libs/Navigation/PlatformStackNavigation/types/NavigationOptions.ts @@ -0,0 +1,45 @@ +import type {NativeStackNavigationOptions} from '@react-navigation/native-stack'; +import type {StackNavigationOptions} from '@react-navigation/stack'; +import type CommonProperties from '@src/types/utils/CommonProperties'; + +// Navigation properties that are only available in web or native stack navigations. +type WebOnlyNavigationOptions = StackNavigationOptions; +type NativeOnlyNavigationOptions = NativeStackNavigationOptions; + +// Common navigation options merged from both stack and native-stack navigations. +type CommonStackNavigationOptions = CommonProperties; + +// type CardOptions = { +// cardShadowEnabled?: StackNavigationOptions['cardShadowEnabled']; +// cardOverlayEnabled?: StackNavigationOptions['cardOverlayEnabled']; +// cardOverlay?: StackNavigationOptions['cardOverlay']; +// cardStyle?: StackNavigationOptions['cardStyle']; +// cardStyleInterpolator: StackNavigationOptions['cardStyleInterpolator']; +// }; + +type GeneralPlatformStackNavigationOptions = { + web?: WebOnlyNavigationOptions; + native?: NativeOnlyNavigationOptions; + + keyboardHandlingEnabled?: boolean; + animation?: 'slide_from_left' | 'slide_from_right' | 'modal' | 'none'; + header?: unknown; + statusBar?: unknown; + presentation?: 'card' | 'modal' | 'transparentModal'; + gesture?: unknown; +}; + +// Combines common and general platform-specific options for PlatformStackNavigation. +type PlatformStackNavigationOptions = CommonStackNavigationOptions & GeneralPlatformStackNavigationOptions; + +// Used to represent platform-specific navigation options. +type PlatformSpecificNavigationOptions = StackNavigationOptions | NativeStackNavigationOptions; + +export type { + WebOnlyNavigationOptions, + NativeOnlyNavigationOptions, + CommonStackNavigationOptions, + GeneralPlatformStackNavigationOptions, + PlatformStackNavigationOptions, + PlatformSpecificNavigationOptions, +}; diff --git a/src/libs/Navigation/PlatformStackNavigation/types/NavigatorComponent.ts b/src/libs/Navigation/PlatformStackNavigation/types/NavigatorComponent.ts new file mode 100644 index 000000000000..5a0dd8602bc0 --- /dev/null +++ b/src/libs/Navigation/PlatformStackNavigation/types/NavigatorComponent.ts @@ -0,0 +1,78 @@ +import type {EventMapBase, ParamListBase, StackActionHelpers} from '@react-navigation/native'; +import type { + PlatformSpecificEventMap, + PlatformSpecificNavigationOptions, + PlatformStackNavigationOptions, + PlatformStackNavigationState, + PlatformStackRouterFactory, + PlatformStackRouterOptions, +} from '.'; +import type {PlatformNavigationBuilderDescriptors, PlatformNavigationBuilderNavigation} from './NavigationBuilder'; + +// Represents a route in the search context within the navigation state. +type SearchRoute = PlatformStackNavigationState['routes'][number]; + +// Props that custom code receives when passed to the createPlatformStackNavigatorComponent generator function. +// Custom logic like "transformState", "onWindowDimensionsChange" and custom components like "NavigationContentWrapper" and "ExtraContent" will receive these props +type CustomCodeProps< + NavigationOptions extends PlatformSpecificNavigationOptions, + EventMap extends PlatformSpecificEventMap & EventMapBase, + ParamList extends ParamListBase = ParamListBase, + ActionHelpers extends StackActionHelpers = StackActionHelpers, +> = { + state: PlatformStackNavigationState; + navigation: PlatformNavigationBuilderNavigation; + descriptors: PlatformNavigationBuilderDescriptors; + displayName: string; + searchRoute?: SearchRoute; +}; + +// Props for the custom state hook. +type CustomStateHookProps = CustomCodeProps; + +// Defines a hook function type for transforming the navigation state based on props, and returning the transformed state and search route. +type CustomStateHook = (props: CustomStateHookProps) => { + stateToRender?: PlatformStackNavigationState; + searchRoute?: SearchRoute; +}; + +// Props for the custom effects hook. +type CustomEffectsHookProps = CustomCodeProps; + +// Defines a hook function type for creating custom effects in the navigator. +type CustomEffectsHook = (props: CustomEffectsHookProps) => void; + +// Props for the ExtraContent component. +type ExtraContentProps = CustomCodeProps; + +// A React component that renders extra content within the navigator, like a header or footer. +type ExtraContent = (props: ExtraContentProps) => React.ReactElement | null; + +// Props for the NavigationContentWrapper component. +type NavigationContentWrapperProps = React.PropsWithChildren>; + +// A React component that renders extra content within the navigator, like a header or footer. +type NavigationContentWrapper = (props: NavigationContentWrapperProps) => React.ReactElement | null; + +// Options for creating the PlatformStackNavigator using createPlatformStackNavigatorComponent. +type CreatePlatformStackNavigatorComponentOptions = { + createRouter?: PlatformStackRouterFactory; + defaultScreenOptions?: PlatformStackNavigationOptions; + useCustomState?: CustomStateHook; + useCustomEffects?: CustomEffectsHook; + ExtraContent?: ExtraContent; + NavigationContentWrapper?: NavigationContentWrapper; +}; + +export type { + CustomCodeProps, + CustomStateHookProps, + CustomStateHook, + CustomEffectsHookProps, + CustomEffectsHook, + ExtraContentProps, + ExtraContent, + NavigationContentWrapperProps, + NavigationContentWrapper, + CreatePlatformStackNavigatorComponentOptions, +}; diff --git a/src/libs/Navigation/PlatformStackNavigation/types/index.ts b/src/libs/Navigation/PlatformStackNavigation/types/index.ts new file mode 100644 index 000000000000..04ed4e68d9a8 --- /dev/null +++ b/src/libs/Navigation/PlatformStackNavigation/types/index.ts @@ -0,0 +1,98 @@ +import type { + DefaultNavigatorOptions, + NavigationProp, + ParamListBase, + RouteProp, + RouterFactory, + ScreenOptionsOrCallback, + StackNavigationState, + StackRouterOptions, +} from '@react-navigation/native'; +import type {NativeStackNavigationEventMap, NativeStackNavigationOptions} from '@react-navigation/native-stack'; +import type {StackNavigationEventMap, StackNavigationOptions} from '@react-navigation/stack'; +import type {StackNavigationConfig} from '@react-navigation/stack/lib/typescript/src/types'; +import type CommonProperties from '@src/types/utils/CommonProperties'; +import type {PlatformStackNavigationOptions} from './NavigationOptions'; + +// Represents the navigation state type for a platform-specific stack. +type PlatformStackNavigationState = StackNavigationState; + +// Common event map merged from both stack and native-stack navigations. +type CommonStackNavigationEventMap = CommonProperties; + +// Represents the event map that can be used in the PlatformStackNavigation (only common events). +type PlatformStackNavigationEventMap = CommonStackNavigationEventMap; + +// Used to represent platform-specific event maps. +type PlatformSpecificEventMap = StackNavigationOptions | NativeStackNavigationOptions; + +// Router options used in the PlatformStackNavigation +type PlatformStackRouterOptions = StackRouterOptions; + +// Factory function type for creating a router specific to the PlatformStackNavigation +type PlatformStackRouterFactory = RouterFactory< + PlatformStackNavigationState, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + any, + RouterOptions +>; + +// Represents the navigation prop for passed to screens and "screenOptions" factory functions using the types from PlatformStackNavigation +type PlatformStackNavigationProp = NavigationProp< + ParamList, + RouteName, + NavigatorID, + PlatformStackNavigationState, + PlatformStackNavigationOptions, + PlatformStackNavigationEventMap +>; + +// Represents the route prop for passed to screens and "screenOptions" factory functions using the types from PlatformStackNavigation +type PlatformStackRouteProp = RouteProp; + +type PlatformStackScreenProps< + ParamList extends ParamListBase = ParamListBase, + RouteName extends keyof ParamList = keyof ParamList, + NavigatorID extends string | undefined = undefined, + // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-redundant-type-constituents + NavigationPropType extends PlatformStackNavigationProp | any = PlatformStackNavigationProp, +> = { + route: PlatformStackRouteProp; + navigation: NavigationPropType; +}; + +// Props to configure the the PlatformStackNavigator +type PlatformStackNavigatorProps< + ParamList extends ParamListBase, + RouteName extends keyof ParamList = keyof ParamList, + RouterOptions extends PlatformStackRouterOptions = PlatformStackRouterOptions, +> = DefaultNavigatorOptions, PlatformStackNavigationOptions, PlatformStackNavigationEventMap, RouteName> & + RouterOptions & + StackNavigationConfig; + +// The "screenOptions" and "defaultScreenOptions" can either be an object of navigation options or +// a factory function that returns the navigation options based on route and navigation props. +// These types are used to represent the screen options and their factory functions. +function isRouteBasedScreenOptions( + screenOptions: ScreenOptionsOrCallback | undefined, +): screenOptions is (props: PlatformStackScreenProps) => PlatformStackNavigationOptions { + return typeof screenOptions === 'function'; +} + +export {isRouteBasedScreenOptions}; + +export type { + PlatformStackNavigationState, + PlatformStackNavigationEventMap, + PlatformSpecificEventMap, + PlatformStackRouterOptions, + PlatformStackRouterFactory, + PlatformStackNavigationProp, + PlatformStackRouteProp, + PlatformStackScreenProps, + PlatformStackNavigatorProps, +}; + +export * from './NavigationBuilder'; +export * from './NavigationOptions'; +export * from './NavigatorComponent'; diff --git a/src/libs/Navigation/getOnboardingModalScreenOptions/index.native.ts b/src/libs/Navigation/getOnboardingModalScreenOptions/index.native.ts deleted file mode 100644 index 98dd131a9332..000000000000 --- a/src/libs/Navigation/getOnboardingModalScreenOptions/index.native.ts +++ /dev/null @@ -1,12 +0,0 @@ -import getRootNavigatorScreenOptions from '@libs/Navigation/AppNavigator/getRootNavigatorScreenOptions'; -import type {ThemeStyles} from '@styles/index'; -import type {StyleUtilsType} from '@styles/utils'; - -function getOnboardingModalScreenOptions(isSmallScreenWidth: boolean, styles: ThemeStyles, StyleUtils: StyleUtilsType) { - return { - ...getRootNavigatorScreenOptions(isSmallScreenWidth, styles, StyleUtils).fullScreen, - gestureEnabled: false, - }; -} - -export default getOnboardingModalScreenOptions; diff --git a/src/libs/Navigation/getOnboardingModalScreenOptions/index.ts b/src/libs/Navigation/getOnboardingModalScreenOptions/index.ts deleted file mode 100644 index aad1964f441c..000000000000 --- a/src/libs/Navigation/getOnboardingModalScreenOptions/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -import getRootNavigatorScreenOptions from '@libs/Navigation/AppNavigator/getRootNavigatorScreenOptions'; -import type {ThemeStyles} from '@styles/index'; -import type {StyleUtilsType} from '@styles/utils'; - -function getOnboardingModalScreenOptions(isSmallScreenWidth: boolean, styles: ThemeStyles, StyleUtils: StyleUtilsType, shouldUseNarrowLayout: boolean) { - return getRootNavigatorScreenOptions(isSmallScreenWidth, styles, StyleUtils).onboardingModalNavigator(shouldUseNarrowLayout); -} - -export default getOnboardingModalScreenOptions; diff --git a/src/libs/Navigation/setupCustomAndroidBackHandler/index.android.ts b/src/libs/Navigation/setupCustomAndroidBackHandler/index.android.ts index f7c2140b1117..d31c3693d495 100644 --- a/src/libs/Navigation/setupCustomAndroidBackHandler/index.android.ts +++ b/src/libs/Navigation/setupCustomAndroidBackHandler/index.android.ts @@ -1,13 +1,13 @@ import {findFocusedRoute, StackActions} from '@react-navigation/native'; -import type {StackScreenProps} from '@react-navigation/stack'; import {BackHandler, NativeModules} from 'react-native'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import getTopmostCentralPaneRoute from '@navigation/getTopmostCentralPaneRoute'; import navigationRef from '@navigation/navigationRef'; import type {BottomTabNavigatorParamList, RootStackParamList, State} from '@navigation/types'; import NAVIGATORS from '@src/NAVIGATORS'; import SCREENS from '@src/SCREENS'; -type SearchPageProps = StackScreenProps; +type SearchPageProps = PlatformStackScreenProps; // We need to do some custom handling for the back button on Android for actions related to the search page. function setupCustomAndroidBackHandler() { diff --git a/src/libs/Navigation/types.ts b/src/libs/Navigation/types.ts index b698681966e2..7a22cd47b1c2 100644 --- a/src/libs/Navigation/types.ts +++ b/src/libs/Navigation/types.ts @@ -17,7 +17,7 @@ import type {SaveSearchParams} from '@libs/API/parameters'; import type CONST from '@src/CONST'; import type {Country, IOUAction, IOUType} from '@src/CONST'; import type NAVIGATORS from '@src/NAVIGATORS'; -import type {HybridAppRoute, Route as Routes} from '@src/ROUTES'; +import type {Route as ExpensifyRoute, HybridAppRoute, Route as Routes} from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; import type EXIT_SURVEY_REASON_FORM_INPUT_IDS from '@src/types/form/ExitSurveyReasonForm'; import type {ConnectionName, SageIntacctMappingName} from '@src/types/onyx/Policy'; @@ -1077,6 +1077,18 @@ type MoneyRequestNavigatorParamList = { backTo?: Routes; currency?: string; }; + [SCREENS.MONEY_REQUEST.HOLD]: { + /** ID of the transaction the page was opened for */ + transactionID: string; + + /** ID of the report that user is providing hold reason to */ + reportID: string; + + /** Link to previous page */ + backTo: ExpensifyRoute; + + searchHash?: number; + }; }; type NewTaskNavigatorParamList = { @@ -1479,6 +1491,18 @@ type SearchReportParamList = { reportID: string; reportActionID?: string; }; + [SCREENS.SEARCH.TRANSACTION_HOLD_REASON_RHP]: { + /** ID of the transaction the page was opened for */ + transactionID: string; + + /** ID of the report that user is providing hold reason to */ + reportID: string; + + /** Link to previous page */ + backTo: ExpensifyRoute; + + searchHash?: number; + }; }; type SearchAdvancedFiltersParamList = { diff --git a/src/pages/ChatFinderPage/index.tsx b/src/pages/ChatFinderPage/index.tsx index aabf881a8bed..a35b17ae7ff0 100644 --- a/src/pages/ChatFinderPage/index.tsx +++ b/src/pages/ChatFinderPage/index.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import isEmpty from 'lodash/isEmpty'; import React, {useCallback, useEffect, useMemo, useState} from 'react'; import type {OnyxEntry} from 'react-native-onyx'; @@ -14,6 +13,7 @@ import useDismissedReferralBanners from '@hooks/useDismissedReferralBanners'; import useLocalize from '@hooks/useLocalize'; import useNetwork from '@hooks/useNetwork'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {RootStackParamList} from '@libs/Navigation/types'; import * as OptionsListUtils from '@libs/OptionsListUtils'; import Performance from '@libs/Performance'; @@ -35,7 +35,7 @@ type ChatFinderPageOnyxProps = { isSearchingForReports: OnyxEntry; }; -type ChatFinderPageProps = ChatFinderPageOnyxProps & StackScreenProps; +type ChatFinderPageProps = ChatFinderPageOnyxProps & PlatformStackScreenProps; type ChatFinderPageSectionItem = { data: OptionData[]; diff --git a/src/pages/ConciergePage.tsx b/src/pages/ConciergePage.tsx index 46f17e76c083..897d1c429799 100644 --- a/src/pages/ConciergePage.tsx +++ b/src/pages/ConciergePage.tsx @@ -1,5 +1,4 @@ import {useFocusEffect} from '@react-navigation/native'; -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useEffect, useRef} from 'react'; import {View} from 'react-native'; import type {OnyxEntry} from 'react-native-onyx'; @@ -10,6 +9,7 @@ import ScreenWrapper from '@components/ScreenWrapper'; import useResponsiveLayout from '@hooks/useResponsiveLayout'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {AuthScreensParamList} from '@libs/Navigation/types'; import * as App from '@userActions/App'; import * as Report from '@userActions/Report'; @@ -22,7 +22,7 @@ type ConciergePageOnyxProps = { session: OnyxEntry; }; -type ConciergePageProps = ConciergePageOnyxProps & StackScreenProps; +type ConciergePageProps = ConciergePageOnyxProps & PlatformStackScreenProps; /* * This is a "utility page", that does this: diff --git a/src/pages/Debug/DebugDetailsConstantPickerPage.tsx b/src/pages/Debug/DebugDetailsConstantPickerPage.tsx index a98ef9963542..e195351cc0a4 100644 --- a/src/pages/Debug/DebugDetailsConstantPickerPage.tsx +++ b/src/pages/Debug/DebugDetailsConstantPickerPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import isObject from 'lodash/isObject'; import React, {useMemo, useState} from 'react'; import {View} from 'react-native'; @@ -10,12 +9,13 @@ import type {ListItem} from '@components/SelectionList/types'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {DebugParamList} from '@libs/Navigation/types'; import {appendParam} from '@libs/Url'; import type SCREENS from '@src/SCREENS'; import {DETAILS_CONSTANT_OPTIONS} from './const'; -type DebugDetailsConstantPickerPageProps = StackScreenProps; +type DebugDetailsConstantPickerPageProps = PlatformStackScreenProps; function DebugDetailsConstantPickerPage({ route: { diff --git a/src/pages/Debug/DebugDetailsDateTimePickerPage.tsx b/src/pages/Debug/DebugDetailsDateTimePickerPage.tsx index 920b5b52076c..b2be1429ee5b 100644 --- a/src/pages/Debug/DebugDetailsDateTimePickerPage.tsx +++ b/src/pages/Debug/DebugDetailsDateTimePickerPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import {format} from 'date-fns'; import React, {useState} from 'react'; import {View} from 'react-native'; @@ -12,11 +11,12 @@ import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import DateUtils from '@libs/DateUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {DebugParamList} from '@libs/Navigation/types'; import {appendParam} from '@libs/Url'; import type SCREENS from '@src/SCREENS'; -type DebugDetailsDateTimePickerPageProps = StackScreenProps; +type DebugDetailsDateTimePickerPageProps = PlatformStackScreenProps; function DebugDetailsDateTimePickerPage({ route: { diff --git a/src/pages/Debug/Report/DebugReportPage.tsx b/src/pages/Debug/Report/DebugReportPage.tsx index 5fc3eb21c200..9d280acd36bc 100644 --- a/src/pages/Debug/Report/DebugReportPage.tsx +++ b/src/pages/Debug/Report/DebugReportPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import {View} from 'react-native'; import {useOnyx} from 'react-native-onyx'; @@ -11,6 +10,7 @@ import DebugUtils from '@libs/DebugUtils'; import * as DeviceCapabilities from '@libs/DeviceCapabilities'; import Navigation from '@libs/Navigation/Navigation'; import OnyxTabNavigator, {TopTab} from '@libs/Navigation/OnyxTabNavigator'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {DebugParamList} from '@libs/Navigation/types'; import DebugDetails from '@pages/Debug/DebugDetails'; import DebugJSON from '@pages/Debug/DebugJSON'; @@ -20,7 +20,7 @@ import ONYXKEYS from '@src/ONYXKEYS'; import type SCREENS from '@src/SCREENS'; import DebugReportActions from './DebugReportActions'; -type DebugReportPageProps = StackScreenProps; +type DebugReportPageProps = PlatformStackScreenProps; function DebugReportPage({ route: { diff --git a/src/pages/Debug/ReportAction/DebugReportActionCreatePage.tsx b/src/pages/Debug/ReportAction/DebugReportActionCreatePage.tsx index 0b260a8bc93e..429f42b58dda 100644 --- a/src/pages/Debug/ReportAction/DebugReportActionCreatePage.tsx +++ b/src/pages/Debug/ReportAction/DebugReportActionCreatePage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useState} from 'react'; import {View} from 'react-native'; import type {OnyxEntry} from 'react-native-onyx'; @@ -15,6 +14,7 @@ import DateUtils from '@libs/DateUtils'; import DebugUtils from '@libs/DebugUtils'; import * as DeviceCapabilities from '@libs/DeviceCapabilities'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {DebugParamList} from '@libs/Navigation/types'; import * as NumberUtils from '@libs/NumberUtils'; import ReportActionItem from '@pages/home/report/ReportActionItem'; @@ -26,7 +26,7 @@ import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; import type {PersonalDetailsList, ReportAction, Session} from '@src/types/onyx'; -type DebugReportActionCreatePageProps = StackScreenProps; +type DebugReportActionCreatePageProps = PlatformStackScreenProps; const getInitialReportAction = (reportID: string, session: OnyxEntry, personalDetailsList: OnyxEntry) => DebugUtils.stringifyJSON({ diff --git a/src/pages/Debug/ReportAction/DebugReportActionPage.tsx b/src/pages/Debug/ReportAction/DebugReportActionPage.tsx index 89377310571e..621e77360358 100644 --- a/src/pages/Debug/ReportAction/DebugReportActionPage.tsx +++ b/src/pages/Debug/ReportAction/DebugReportActionPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import {View} from 'react-native'; import {useOnyx} from 'react-native-onyx'; @@ -11,6 +10,7 @@ import DebugUtils from '@libs/DebugUtils'; import * as DeviceCapabilities from '@libs/DeviceCapabilities'; import Navigation from '@libs/Navigation/Navigation'; import OnyxTabNavigator, {TopTab} from '@libs/Navigation/OnyxTabNavigator'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {DebugParamList} from '@libs/Navigation/types'; import DebugDetails from '@pages/Debug/DebugDetails'; import DebugJSON from '@pages/Debug/DebugJSON'; @@ -20,7 +20,7 @@ import ONYXKEYS from '@src/ONYXKEYS'; import type SCREENS from '@src/SCREENS'; import DebugReportActionPreview from './DebugReportActionPreview'; -type DebugReportActionPageProps = StackScreenProps; +type DebugReportActionPageProps = PlatformStackScreenProps; function DebugReportActionPage({ route: { diff --git a/src/pages/EditReportFieldPage.tsx b/src/pages/EditReportFieldPage.tsx index d7d359d289f4..25023badbd1e 100644 --- a/src/pages/EditReportFieldPage.tsx +++ b/src/pages/EditReportFieldPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import {Str} from 'expensify-common'; import React, {useState} from 'react'; import {useOnyx} from 'react-native-onyx'; @@ -14,6 +13,7 @@ import useThemeStyles from '@hooks/useThemeStyles'; import useWindowDimensions from '@hooks/useWindowDimensions'; import isSearchTopmostCentralPane from '@libs/Navigation/isSearchTopmostCentralPane'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {EditRequestNavigatorParamList} from '@libs/Navigation/types'; import * as ReportUtils from '@libs/ReportUtils'; import CONST from '@src/CONST'; @@ -25,7 +25,7 @@ import EditReportFieldDate from './EditReportFieldDate'; import EditReportFieldDropdown from './EditReportFieldDropdown'; import EditReportFieldText from './EditReportFieldText'; -type EditReportFieldPageProps = StackScreenProps; +type EditReportFieldPageProps = PlatformStackScreenProps; function EditReportFieldPage({route}: EditReportFieldPageProps) { const {windowWidth} = useWindowDimensions(); diff --git a/src/pages/FlagCommentPage.tsx b/src/pages/FlagCommentPage.tsx index c87dda8e13c9..64f287aad15d 100644 --- a/src/pages/FlagCommentPage.tsx +++ b/src/pages/FlagCommentPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback} from 'react'; import {View} from 'react-native'; import type {OnyxEntry} from 'react-native-onyx'; @@ -14,6 +13,7 @@ import Text from '@components/Text'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {FlagCommentNavigatorParamList} from '@libs/Navigation/types'; import * as ReportUtils from '@libs/ReportUtils'; import * as Report from '@userActions/Report'; @@ -29,7 +29,7 @@ type FlagCommentPageWithOnyxProps = { parentReportAction: OnyxEntry; }; -type FlagCommentPageNavigationProps = StackScreenProps; +type FlagCommentPageNavigationProps = PlatformStackScreenProps; type FlagCommentPageProps = WithReportAndReportActionOrNotFoundProps & FlagCommentPageNavigationProps & FlagCommentPageWithOnyxProps; diff --git a/src/pages/GetAssistancePage.tsx b/src/pages/GetAssistancePage.tsx index 90b7ccbb28d8..aecb78b76a76 100644 --- a/src/pages/GetAssistancePage.tsx +++ b/src/pages/GetAssistancePage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import {View} from 'react-native'; import {withOnyx} from 'react-native-onyx'; @@ -15,6 +14,7 @@ import useLocalize from '@hooks/useLocalize'; import useResponsiveLayout from '@hooks/useResponsiveLayout'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import * as Link from '@userActions/Link'; import * as Report from '@userActions/Report'; @@ -29,7 +29,7 @@ type GetAssistanceOnyxProps = { account: OnyxEntry; }; -type GetAssistancePageProps = GetAssistanceOnyxProps & StackScreenProps; +type GetAssistancePageProps = GetAssistanceOnyxProps & PlatformStackScreenProps; function GetAssistancePage({route, account}: GetAssistancePageProps) { const styles = useThemeStyles(); diff --git a/src/pages/GroupChatNameEditPage.tsx b/src/pages/GroupChatNameEditPage.tsx index 425e8a421cb2..100efb69cae1 100644 --- a/src/pages/GroupChatNameEditPage.tsx +++ b/src/pages/GroupChatNameEditPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useMemo} from 'react'; import type {OnyxEntry} from 'react-native-onyx'; import {withOnyx} from 'react-native-onyx'; @@ -12,6 +11,7 @@ import useAutoFocusInput from '@hooks/useAutoFocusInput'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {NewChatNavigatorParamList} from '@libs/Navigation/types'; import * as ReportUtils from '@libs/ReportUtils'; import * as ValidationUtils from '@libs/ValidationUtils'; @@ -30,7 +30,7 @@ type GroupChatNameEditPageOnyxProps = { }; type GroupChatNameEditPageProps = GroupChatNameEditPageOnyxProps & - Partial> & { + Partial> & { report?: ReportOnyxType; }; diff --git a/src/pages/InviteReportParticipantsPage.tsx b/src/pages/InviteReportParticipantsPage.tsx index 6a5bf6832fd6..b639d984a132 100644 --- a/src/pages/InviteReportParticipantsPage.tsx +++ b/src/pages/InviteReportParticipantsPage.tsx @@ -1,4 +1,3 @@ -import type {RouteProp} from '@react-navigation/native'; import {useRoute} from '@react-navigation/native'; import React, {useCallback, useEffect, useMemo, useState} from 'react'; import type {SectionListData} from 'react-native'; @@ -20,6 +19,7 @@ import * as UserSearchPhraseActions from '@libs/actions/RoomMembersUserSearchPhr import * as DeviceCapabilities from '@libs/DeviceCapabilities'; import * as LoginUtils from '@libs/LoginUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types'; import type {ParticipantsNavigatorParamList} from '@libs/Navigation/types'; import * as OptionsListUtils from '@libs/OptionsListUtils'; import * as PersonalDetailsUtils from '@libs/PersonalDetailsUtils'; @@ -44,7 +44,7 @@ type InviteReportParticipantsPageProps = InviteReportParticipantsPageOnyxProps & type Sections = Array>>; function InviteReportParticipantsPage({betas, personalDetails, report, didScreenTransitionEnd}: InviteReportParticipantsPageProps) { - const route = useRoute>(); + const route = useRoute>(); const {options, areOptionsInitialized} = useOptionsList({ shouldInitialize: didScreenTransitionEnd, }); diff --git a/src/pages/LogInWithShortLivedAuthTokenPage.tsx b/src/pages/LogInWithShortLivedAuthTokenPage.tsx index fcbeadaa4a47..9dcd65537353 100644 --- a/src/pages/LogInWithShortLivedAuthTokenPage.tsx +++ b/src/pages/LogInWithShortLivedAuthTokenPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useEffect} from 'react'; import {NativeModules} from 'react-native'; import type {OnyxEntry} from 'react-native-onyx'; @@ -6,6 +5,7 @@ import {withOnyx} from 'react-native-onyx'; import FullScreenLoadingIndicator from '@components/FullscreenLoadingIndicator'; import Log from '@libs/Log'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {PublicScreensParamList} from '@libs/Navigation/types'; import * as Session from '@userActions/Session'; import CONST from '@src/CONST'; @@ -21,7 +21,7 @@ type LogInWithShortLivedAuthTokenPageOnyxProps = { account: OnyxEntry; }; -type LogInWithShortLivedAuthTokenPageProps = LogInWithShortLivedAuthTokenPageOnyxProps & StackScreenProps; +type LogInWithShortLivedAuthTokenPageProps = LogInWithShortLivedAuthTokenPageOnyxProps & PlatformStackScreenProps; function LogInWithShortLivedAuthTokenPage({route, account}: LogInWithShortLivedAuthTokenPageProps) { const {email = '', shortLivedAuthToken = '', shortLivedToken = '', authTokenType, exitTo, error} = route?.params ?? {}; diff --git a/src/pages/LogOutPreviousUserPage.tsx b/src/pages/LogOutPreviousUserPage.tsx index deb95a576c3d..bb381bb156ed 100644 --- a/src/pages/LogOutPreviousUserPage.tsx +++ b/src/pages/LogOutPreviousUserPage.tsx @@ -1,10 +1,10 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useContext, useEffect} from 'react'; import {NativeModules} from 'react-native'; import {withOnyx} from 'react-native-onyx'; import type {OnyxEntry} from 'react-native-onyx'; import FullScreenLoadingIndicator from '@components/FullscreenLoadingIndicator'; import {InitialURLContext} from '@components/InitialURLContextProvider'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as SessionUtils from '@libs/SessionUtils'; import Navigation from '@navigation/Navigation'; import type {AuthScreensParamList} from '@navigation/types'; @@ -24,7 +24,7 @@ type LogOutPreviousUserPageOnyxProps = { isAccountLoading: boolean; }; -type LogOutPreviousUserPageProps = LogOutPreviousUserPageOnyxProps & StackScreenProps; +type LogOutPreviousUserPageProps = LogOutPreviousUserPageOnyxProps & PlatformStackScreenProps; // This page is responsible for handling transitions from OldDot. Specifically, it logs the current user // out if the transition is for another user. diff --git a/src/pages/OnboardingPersonalDetails/types.ts b/src/pages/OnboardingPersonalDetails/types.ts index 79aca4af4639..e8b99d949fa7 100644 --- a/src/pages/OnboardingPersonalDetails/types.ts +++ b/src/pages/OnboardingPersonalDetails/types.ts @@ -1,16 +1,14 @@ -import type {RouteProp} from '@react-navigation/native'; -import type {StackScreenProps} from '@react-navigation/stack'; import type {WithCurrentUserPersonalDetailsProps} from '@components/withCurrentUserPersonalDetails'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {OnboardingModalNavigatorParamList} from '@libs/Navigation/types'; import type SCREENS from '@src/SCREENS'; -type OnboardingPersonalDetailsProps = Record & StackScreenProps; +type OnboardingPersonalDetailsProps = Record & PlatformStackScreenProps; -type BaseOnboardingPersonalDetailsProps = WithCurrentUserPersonalDetailsProps & { - /* Whether to use native styles tailored for native devices */ - shouldUseNativeStyles: boolean; - - route: RouteProp; -}; +type BaseOnboardingPersonalDetailsProps = WithCurrentUserPersonalDetailsProps & + PlatformStackScreenProps & { + /* Whether to use native styles tailored for native devices */ + shouldUseNativeStyles: boolean; + }; export type {OnboardingPersonalDetailsProps, BaseOnboardingPersonalDetailsProps}; diff --git a/src/pages/OnboardingPurpose/types.ts b/src/pages/OnboardingPurpose/types.ts index 7a61196fd328..8f2f99b97e56 100644 --- a/src/pages/OnboardingPurpose/types.ts +++ b/src/pages/OnboardingPurpose/types.ts @@ -1,8 +1,8 @@ -import type {StackScreenProps} from '@react-navigation/stack'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {OnboardingModalNavigatorParamList} from '@libs/Navigation/types'; import type SCREENS from '@src/SCREENS'; -type OnboardingPurposeProps = Record & StackScreenProps; +type OnboardingPurposeProps = Record & PlatformStackScreenProps; type BaseOnboardingPurposeProps = OnboardingPurposeProps & { /* Whether to use native styles tailored for native devices */ diff --git a/src/pages/OnboardingWork/types.ts b/src/pages/OnboardingWork/types.ts index 94b729cb91ec..90191903b1db 100644 --- a/src/pages/OnboardingWork/types.ts +++ b/src/pages/OnboardingWork/types.ts @@ -1,8 +1,8 @@ -import type {StackScreenProps} from '@react-navigation/stack'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {OnboardingModalNavigatorParamList} from '@libs/Navigation/types'; import type SCREENS from '@src/SCREENS'; -type OnboardingWorkProps = Record & StackScreenProps; +type OnboardingWorkProps = Record & PlatformStackScreenProps; type BaseOnboardingWorkProps = OnboardingWorkProps & { /* Whether to use native styles tailored for native devices */ diff --git a/src/pages/PrivateNotes/PrivateNotesEditPage.tsx b/src/pages/PrivateNotes/PrivateNotesEditPage.tsx index ac8eb7f862b6..5dd4275e5fa1 100644 --- a/src/pages/PrivateNotes/PrivateNotesEditPage.tsx +++ b/src/pages/PrivateNotes/PrivateNotesEditPage.tsx @@ -1,5 +1,4 @@ import {useFocusEffect} from '@react-navigation/native'; -import type {StackScreenProps} from '@react-navigation/stack'; import {Str} from 'expensify-common'; import lodashDebounce from 'lodash/debounce'; import React, {useCallback, useMemo, useRef, useState} from 'react'; @@ -18,6 +17,7 @@ import useHtmlPaste from '@hooks/useHtmlPaste'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {PrivateNotesNavigatorParamList} from '@libs/Navigation/types'; import Parser from '@libs/Parser'; import * as ReportUtils from '@libs/ReportUtils'; @@ -41,7 +41,7 @@ type PrivateNotesEditPageOnyxProps = { type PrivateNotesEditPageProps = WithReportAndPrivateNotesOrNotFoundProps & PrivateNotesEditPageOnyxProps & - StackScreenProps & { + PlatformStackScreenProps & { /** The report currently being looked at */ report: Report; }; diff --git a/src/pages/PrivateNotes/PrivateNotesListPage.tsx b/src/pages/PrivateNotes/PrivateNotesListPage.tsx index cc7ee9f54daa..799b67a3a2ea 100644 --- a/src/pages/PrivateNotes/PrivateNotesListPage.tsx +++ b/src/pages/PrivateNotes/PrivateNotesListPage.tsx @@ -1,4 +1,3 @@ -import type {RouteProp} from '@react-navigation/native'; import {useRoute} from '@react-navigation/native'; import React, {useCallback, useMemo} from 'react'; import type {OnyxEntry} from 'react-native-onyx'; @@ -13,6 +12,7 @@ import Text from '@components/Text'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types'; import type {PrivateNotesNavigatorParamList} from '@libs/Navigation/types'; import type {WithReportAndPrivateNotesOrNotFoundProps} from '@pages/home/report/withReportAndPrivateNotesOrNotFound'; import withReportAndPrivateNotesOrNotFound from '@pages/home/report/withReportAndPrivateNotesOrNotFound'; @@ -44,7 +44,7 @@ type NoteListItem = { }; function PrivateNotesListPage({report, personalDetailsList, session}: PrivateNotesListPageProps) { - const route = useRoute>(); + const route = useRoute>(); const backTo = route.params.backTo; const styles = useThemeStyles(); const {translate} = useLocalize(); diff --git a/src/pages/ProfilePage.tsx b/src/pages/ProfilePage.tsx index 0d47e3fd8f35..b4c61b3d5ca3 100755 --- a/src/pages/ProfilePage.tsx +++ b/src/pages/ProfilePage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import {Str} from 'expensify-common'; import React, {useEffect, useMemo} from 'react'; import {View} from 'react-native'; @@ -24,6 +23,7 @@ import UserDetailsTooltip from '@components/UserDetailsTooltip'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as PersonalDetailsUtils from '@libs/PersonalDetailsUtils'; import {parsePhoneNumber} from '@libs/PhoneNumber'; import * as ReportUtils from '@libs/ReportUtils'; @@ -42,7 +42,7 @@ import type SCREENS from '@src/SCREENS'; import type {PersonalDetails, Report} from '@src/types/onyx'; import {isEmptyObject} from '@src/types/utils/EmptyObject'; -type ProfilePageProps = StackScreenProps; +type ProfilePageProps = PlatformStackScreenProps; /** * Gets the phone number to display for SMS logins diff --git a/src/pages/ReferralDetailsPage.tsx b/src/pages/ReferralDetailsPage.tsx index d8a27e171933..76dac1aca1a8 100644 --- a/src/pages/ReferralDetailsPage.tsx +++ b/src/pages/ReferralDetailsPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useRef} from 'react'; import type {OnyxEntry} from 'react-native-onyx'; import {withOnyx} from 'react-native-onyx'; @@ -15,6 +14,7 @@ import useTheme from '@hooks/useTheme'; import useThemeStyles from '@hooks/useThemeStyles'; import Clipboard from '@libs/Clipboard'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {ReferralDetailsNavigatorParamList} from '@libs/Navigation/types'; import * as Link from '@userActions/Link'; import CONST from '@src/CONST'; @@ -29,7 +29,7 @@ type ReferralDetailsPageOnyxProps = { account: OnyxEntry; }; -type ReferralDetailsPageProps = ReferralDetailsPageOnyxProps & StackScreenProps; +type ReferralDetailsPageProps = ReferralDetailsPageOnyxProps & PlatformStackScreenProps; function ReferralDetailsPage({route, account}: ReferralDetailsPageProps) { const theme = useTheme(); diff --git a/src/pages/ReimbursementAccount/ReimbursementAccountPage.tsx b/src/pages/ReimbursementAccount/ReimbursementAccountPage.tsx index 972363bed7fc..92745f4a6151 100644 --- a/src/pages/ReimbursementAccount/ReimbursementAccountPage.tsx +++ b/src/pages/ReimbursementAccount/ReimbursementAccountPage.tsx @@ -1,5 +1,3 @@ -import type {RouteProp} from '@react-navigation/native'; -import type {StackScreenProps} from '@react-navigation/stack'; import {Str} from 'expensify-common'; import lodashPick from 'lodash/pick'; import React, {useEffect, useRef, useState} from 'react'; @@ -18,6 +16,7 @@ import useThemeStyles from '@hooks/useThemeStyles'; import getPlaidOAuthReceivedRedirectURI from '@libs/getPlaidOAuthReceivedRedirectURI'; import BankAccount from '@libs/models/BankAccount'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackRouteProp, PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {ReimbursementAccountNavigatorParamList} from '@libs/Navigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import shouldReopenOnfido from '@libs/shouldReopenOnfido'; @@ -39,7 +38,7 @@ import ContinueBankAccountSetup from './ContinueBankAccountSetup'; import EnableBankAccount from './EnableBankAccount/EnableBankAccount'; import RequestorStep from './RequestorStep'; -type ReimbursementAccountPageProps = WithPolicyOnyxProps & StackScreenProps; +type ReimbursementAccountPageProps = WithPolicyOnyxProps & PlatformStackScreenProps; const ROUTE_NAMES = { COMPANY: 'company', @@ -55,7 +54,7 @@ const ROUTE_NAMES = { * We can pass stepToOpen in the URL to force which step to show. * Mainly needed when user finished the flow in verifying state, and Ops ask them to modify some fields from a specific step. */ -function getStepToOpenFromRouteParams(route: RouteProp): TBankAccountStep | '' { +function getStepToOpenFromRouteParams(route: PlatformStackRouteProp): TBankAccountStep | '' { switch (route.params.stepToOpen) { case ROUTE_NAMES.NEW: return CONST.BANK_ACCOUNT.STEP.BANK_ACCOUNT; diff --git a/src/pages/ReportAvatar.tsx b/src/pages/ReportAvatar.tsx index b9a91705a401..ac139e58a9ff 100644 --- a/src/pages/ReportAvatar.tsx +++ b/src/pages/ReportAvatar.tsx @@ -1,8 +1,8 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useMemo} from 'react'; import {useOnyx} from 'react-native-onyx'; import AttachmentModal from '@components/AttachmentModal'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {AuthScreensParamList} from '@libs/Navigation/types'; import * as ReportUtils from '@libs/ReportUtils'; import * as UserUtils from '@libs/UserUtils'; @@ -10,7 +10,7 @@ import ONYXKEYS from '@src/ONYXKEYS'; import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; -type ReportAvatarProps = StackScreenProps; +type ReportAvatarProps = PlatformStackScreenProps; function ReportAvatar({route}: ReportAvatarProps) { const reportIDFromRoute = route.params?.reportID ?? '-1'; diff --git a/src/pages/ReportDescriptionPage.tsx b/src/pages/ReportDescriptionPage.tsx index 6062ef748f36..0aabe5ad5d58 100644 --- a/src/pages/ReportDescriptionPage.tsx +++ b/src/pages/ReportDescriptionPage.tsx @@ -1,5 +1,5 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as ReportUtils from '@libs/ReportUtils'; import type {ReportDescriptionNavigatorParamList} from '@navigation/types'; import type SCREENS from '@src/SCREENS'; @@ -8,7 +8,7 @@ import withReportOrNotFound from './home/report/withReportOrNotFound'; import RoomDescriptionPage from './RoomDescriptionPage'; import TaskDescriptionPage from './tasks/TaskDescriptionPage'; -type ReportDescriptionPageProps = WithReportOrNotFoundProps & StackScreenProps; +type ReportDescriptionPageProps = WithReportOrNotFoundProps & PlatformStackScreenProps; function ReportDescriptionPage(props: ReportDescriptionPageProps) { const isTask = ReportUtils.isTaskReport(props.report); diff --git a/src/pages/ReportDetailsPage.tsx b/src/pages/ReportDetailsPage.tsx index e51b8e36704a..75c3935e77a3 100644 --- a/src/pages/ReportDetailsPage.tsx +++ b/src/pages/ReportDetailsPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import {Str} from 'expensify-common'; import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react'; import {View} from 'react-native'; @@ -30,6 +29,7 @@ import useNetwork from '@hooks/useNetwork'; import usePaginatedReportActions from '@hooks/usePaginatedReportActions'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {ReportDetailsNavigatorParamList} from '@libs/Navigation/types'; import * as OptionsListUtils from '@libs/OptionsListUtils'; import * as PolicyUtils from '@libs/PolicyUtils'; @@ -65,7 +65,7 @@ type ReportDetailsPageMenuItem = { shouldShowRightIcon?: boolean; }; -type ReportDetailsPageProps = WithReportOrNotFoundProps & StackScreenProps; +type ReportDetailsPageProps = WithReportOrNotFoundProps & PlatformStackScreenProps; const CASES = { DEFAULT: 'default', diff --git a/src/pages/ReportParticipantDetailsPage.tsx b/src/pages/ReportParticipantDetailsPage.tsx index db978b70cad8..342449ae2bef 100644 --- a/src/pages/ReportParticipantDetailsPage.tsx +++ b/src/pages/ReportParticipantDetailsPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback} from 'react'; import {View} from 'react-native'; import type {OnyxEntry} from 'react-native-onyx'; @@ -18,6 +17,7 @@ import useLocalize from '@hooks/useLocalize'; import useStyleUtils from '@hooks/useStyleUtils'; import useThemeStyles from '@hooks/useThemeStyles'; import * as Report from '@libs/actions/Report'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as PersonalDetailsUtils from '@libs/PersonalDetailsUtils'; import * as ReportUtils from '@libs/ReportUtils'; import Navigation from '@navigation/Navigation'; @@ -37,7 +37,7 @@ type ReportParticipantDetailsOnyxProps = { }; type ReportParticipantDetailsPageProps = WithReportOrNotFoundProps & - StackScreenProps & + PlatformStackScreenProps & ReportParticipantDetailsOnyxProps; function ReportParticipantDetails({personalDetails, report, route}: ReportParticipantDetailsPageProps) { diff --git a/src/pages/ReportParticipantRoleSelectionPage.tsx b/src/pages/ReportParticipantRoleSelectionPage.tsx index 17b84e8903ea..95b3f88e9e37 100644 --- a/src/pages/ReportParticipantRoleSelectionPage.tsx +++ b/src/pages/ReportParticipantRoleSelectionPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import {View} from 'react-native'; import type {ValueOf} from 'type-fest'; @@ -10,6 +9,7 @@ import type {ListItem} from '@components/SelectionList/types'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import * as Report from '@libs/actions/Report'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import Navigation from '@navigation/Navigation'; import type {ParticipantsNavigatorParamList} from '@navigation/types'; import CONST from '@src/CONST'; @@ -19,7 +19,7 @@ import NotFoundPage from './ErrorPage/NotFoundPage'; import withReportOrNotFound from './home/report/withReportOrNotFound'; import type {WithReportOrNotFoundProps} from './home/report/withReportOrNotFound'; -type ReportParticipantRoleSelectionPageProps = WithReportOrNotFoundProps & StackScreenProps; +type ReportParticipantRoleSelectionPageProps = WithReportOrNotFoundProps & PlatformStackScreenProps; type ListItemType = ListItem & { value: ValueOf; diff --git a/src/pages/ReportParticipantsPage.tsx b/src/pages/ReportParticipantsPage.tsx index 8835d7c8d5cc..bd0c30665fc9 100755 --- a/src/pages/ReportParticipantsPage.tsx +++ b/src/pages/ReportParticipantsPage.tsx @@ -1,5 +1,4 @@ import {useIsFocused} from '@react-navigation/native'; -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react'; import {InteractionManager, View} from 'react-native'; import type {TextInput} from 'react-native'; @@ -29,6 +28,7 @@ import {turnOffMobileSelectionMode} from '@libs/actions/MobileSelectionMode'; import * as Report from '@libs/actions/Report'; import * as UserSearchPhraseActions from '@libs/actions/RoomMembersUserSearchPhrase'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {ParticipantsNavigatorParamList} from '@libs/Navigation/types'; import * as OptionsListUtils from '@libs/OptionsListUtils'; import * as PersonalDetailsUtils from '@libs/PersonalDetailsUtils'; @@ -42,7 +42,7 @@ import withReportOrNotFound from './home/report/withReportOrNotFound'; type MemberOption = Omit & {accountID: number}; -type ReportParticipantsPageProps = WithReportOrNotFoundProps & StackScreenProps; +type ReportParticipantsPageProps = WithReportOrNotFoundProps & PlatformStackScreenProps; function ReportParticipantsPage({report, route}: ReportParticipantsPageProps) { const backTo = route.params.backTo; const [selectedMembers, setSelectedMembers] = useState([]); diff --git a/src/pages/RestrictedAction/Workspace/WorkspaceRestrictedActionPage.tsx b/src/pages/RestrictedAction/Workspace/WorkspaceRestrictedActionPage.tsx index a9cee3236ad0..bcb46c781262 100644 --- a/src/pages/RestrictedAction/Workspace/WorkspaceRestrictedActionPage.tsx +++ b/src/pages/RestrictedAction/Workspace/WorkspaceRestrictedActionPage.tsx @@ -1,7 +1,7 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import {useOnyx} from 'react-native-onyx'; import usePolicy from '@hooks/usePolicy'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {RestrictedActionParamList} from '@libs/Navigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import NotFoundPage from '@pages/ErrorPage/NotFoundPage'; @@ -11,7 +11,7 @@ import WorkspaceAdminRestrictedAction from './WorkspaceAdminRestrictedAction'; import WorkspaceOwnerRestrictedAction from './WorkspaceOwnerRestrictedAction'; import WorkspaceUserRestrictedAction from './WorkspaceUserRestrictedAction'; -type WorkspaceRestrictedActionPageProps = StackScreenProps; +type WorkspaceRestrictedActionPageProps = PlatformStackScreenProps; function WorkspaceRestrictedActionPage({ route: { diff --git a/src/pages/RoomDescriptionPage.tsx b/src/pages/RoomDescriptionPage.tsx index a70f17d1468c..c5f8e8d01421 100644 --- a/src/pages/RoomDescriptionPage.tsx +++ b/src/pages/RoomDescriptionPage.tsx @@ -1,4 +1,3 @@ -import type {RouteProp} from '@react-navigation/native'; import {useFocusEffect, useRoute} from '@react-navigation/native'; import React, {useCallback, useRef, useState} from 'react'; import {View} from 'react-native'; @@ -15,6 +14,7 @@ import type {BaseTextInputRef} from '@components/TextInput/BaseTextInput/types'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types'; import type {ReportDescriptionNavigatorParamList} from '@libs/Navigation/types'; import Parser from '@libs/Parser'; import * as ReportUtils from '@libs/ReportUtils'; @@ -37,7 +37,7 @@ type RoomDescriptionPageProps = { }; function RoomDescriptionPage({report, policies}: RoomDescriptionPageProps) { - const route = useRoute>(); + const route = useRoute>(); const backTo = route.params.backTo; const styles = useThemeStyles(); const [description, setDescription] = useState(() => Parser.htmlToMarkdown(report?.description ?? '')); diff --git a/src/pages/RoomInvitePage.tsx b/src/pages/RoomInvitePage.tsx index c833fdb68ae6..b943ceec9a36 100644 --- a/src/pages/RoomInvitePage.tsx +++ b/src/pages/RoomInvitePage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import {Str} from 'expensify-common'; import React, {useCallback, useEffect, useMemo, useState} from 'react'; import type {SectionListData} from 'react-native'; @@ -24,6 +23,7 @@ import * as DeviceCapabilities from '@libs/DeviceCapabilities'; import HttpUtils from '@libs/HttpUtils'; import * as LoginUtils from '@libs/LoginUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {RoomMembersNavigatorParamList} from '@libs/Navigation/types'; import * as OptionsListUtils from '@libs/OptionsListUtils'; import * as PersonalDetailsUtils from '@libs/PersonalDetailsUtils'; @@ -40,7 +40,7 @@ import {isEmptyObject} from '@src/types/utils/EmptyObject'; import type {WithReportOrNotFoundProps} from './home/report/withReportOrNotFound'; import withReportOrNotFound from './home/report/withReportOrNotFound'; -type RoomInvitePageProps = WithReportOrNotFoundProps & WithNavigationTransitionEndProps & StackScreenProps; +type RoomInvitePageProps = WithReportOrNotFoundProps & WithNavigationTransitionEndProps & PlatformStackScreenProps; type Sections = Array>>; function RoomInvitePage({ diff --git a/src/pages/RoomMemberDetailsPage.tsx b/src/pages/RoomMemberDetailsPage.tsx index 475cf37a8847..ae0c8ffa1cdc 100644 --- a/src/pages/RoomMemberDetailsPage.tsx +++ b/src/pages/RoomMemberDetailsPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback} from 'react'; import {View} from 'react-native'; import {useOnyx} from 'react-native-onyx'; @@ -15,6 +14,7 @@ import useLocalize from '@hooks/useLocalize'; import useStyleUtils from '@hooks/useStyleUtils'; import useThemeStyles from '@hooks/useThemeStyles'; import * as Report from '@libs/actions/Report'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {RoomMembersNavigatorParamList} from '@libs/Navigation/types'; import Navigation from '@navigation/Navigation'; import CONST from '@src/CONST'; @@ -26,7 +26,7 @@ import NotFoundPage from './ErrorPage/NotFoundPage'; import withReportOrNotFound from './home/report/withReportOrNotFound'; import type {WithReportOrNotFoundProps} from './home/report/withReportOrNotFound'; -type RoomMemberDetailsPagePageProps = WithReportOrNotFoundProps & StackScreenProps; +type RoomMemberDetailsPagePageProps = WithReportOrNotFoundProps & PlatformStackScreenProps; function RoomMemberDetailsPage({report, route}: RoomMemberDetailsPagePageProps) { const styles = useThemeStyles(); diff --git a/src/pages/RoomMembersPage.tsx b/src/pages/RoomMembersPage.tsx index f8c07e5b0a67..04f85e5c02c3 100644 --- a/src/pages/RoomMembersPage.tsx +++ b/src/pages/RoomMembersPage.tsx @@ -1,6 +1,4 @@ -import type {RouteProp} from '@react-navigation/native'; import {useIsFocused, useRoute} from '@react-navigation/native'; -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useEffect, useMemo, useState} from 'react'; import {View} from 'react-native'; import {useOnyx, withOnyx} from 'react-native-onyx'; @@ -30,6 +28,7 @@ import * as UserSearchPhraseActions from '@libs/actions/RoomMembersUserSearchPhr import * as DeviceCapabilities from '@libs/DeviceCapabilities'; import localeCompare from '@libs/LocaleCompare'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackRouteProp, PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {RoomMembersNavigatorParamList} from '@libs/Navigation/types'; import * as OptionsListUtils from '@libs/OptionsListUtils'; import * as PersonalDetailsUtils from '@libs/PersonalDetailsUtils'; @@ -53,10 +52,10 @@ type RoomMembersPageOnyxProps = { type RoomMembersPageProps = WithReportOrNotFoundProps & WithCurrentUserPersonalDetailsProps & RoomMembersPageOnyxProps & - StackScreenProps; + PlatformStackScreenProps; function RoomMembersPage({report, session, policies}: RoomMembersPageProps) { - const route = useRoute>(); + const route = useRoute>(); const styles = useThemeStyles(); const {formatPhoneNumber, translate} = useLocalize(); const [selectedMembers, setSelectedMembers] = useState([]); diff --git a/src/pages/Search/SearchHoldReasonPage.tsx b/src/pages/Search/SearchHoldReasonPage.tsx index edd85e78cec2..229f7d7e6994 100644 --- a/src/pages/Search/SearchHoldReasonPage.tsx +++ b/src/pages/Search/SearchHoldReasonPage.tsx @@ -1,9 +1,9 @@ -import type {RouteProp} from '@react-navigation/native'; import React, {useCallback, useEffect} from 'react'; import type {FormInputErrors, FormOnyxValues} from '@components/Form/types'; import {useSearchContext} from '@components/Search/SearchContext'; import useLocalize from '@hooks/useLocalize'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types'; import * as ValidationUtils from '@libs/ValidationUtils'; import HoldReasonFormView from '@pages/iou/HoldReasonFormView'; import * as FormActions from '@userActions/FormActions'; @@ -19,7 +19,7 @@ type SearchHoldReasonPageRouteParams = { type SearchHoldReasonPageProps = { /** Navigation route context info provided by react navigation */ - route: RouteProp<{params?: SearchHoldReasonPageRouteParams}>; + route: PlatformStackRouteProp<{params?: SearchHoldReasonPageRouteParams}>; }; function SearchHoldReasonPage({route}: SearchHoldReasonPageProps) { diff --git a/src/pages/Search/SearchPage.tsx b/src/pages/Search/SearchPage.tsx index 7f82aaabfc6f..f3586ce9a6fc 100644 --- a/src/pages/Search/SearchPage.tsx +++ b/src/pages/Search/SearchPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useMemo} from 'react'; import FullPageNotFoundView from '@components/BlockingViews/FullPageNotFoundView'; import ScreenWrapper from '@components/ScreenWrapper'; @@ -8,12 +7,13 @@ import SearchStatusBar from '@components/Search/SearchStatusBar'; import useResponsiveLayout from '@hooks/useResponsiveLayout'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {AuthScreensParamList} from '@libs/Navigation/types'; import * as SearchUtils from '@libs/SearchUtils'; import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; -type SearchPageProps = StackScreenProps; +type SearchPageProps = PlatformStackScreenProps; function SearchPage({route}: SearchPageProps) { const {shouldUseNarrowLayout} = useResponsiveLayout(); diff --git a/src/pages/TransactionDuplicate/Confirmation.tsx b/src/pages/TransactionDuplicate/Confirmation.tsx index 15217e215ad4..48955e64d4a0 100644 --- a/src/pages/TransactionDuplicate/Confirmation.tsx +++ b/src/pages/TransactionDuplicate/Confirmation.tsx @@ -1,4 +1,3 @@ -import type {RouteProp} from '@react-navigation/native'; import {useRoute} from '@react-navigation/native'; import React, {useCallback, useMemo} from 'react'; import {View} from 'react-native'; @@ -18,6 +17,7 @@ import useLocalize from '@hooks/useLocalize'; import useReviewDuplicatesNavigation from '@hooks/useReviewDuplicatesNavigation'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types'; import type {TransactionDuplicateNavigatorParamList} from '@libs/Navigation/types'; import variables from '@styles/variables'; import * as IOU from '@src/libs/actions/IOU'; @@ -34,7 +34,7 @@ import isLoadingOnyxValue from '@src/types/utils/isLoadingOnyxValue'; function Confirmation() { const styles = useThemeStyles(); const {translate} = useLocalize(); - const route = useRoute>(); + const route = useRoute>(); const [reviewDuplicates, reviewDuplicatesResult] = useOnyx(ONYXKEYS.REVIEW_DUPLICATES); const transaction = useMemo(() => TransactionUtils.buildNewTransactionAfterReviewingDuplicates(reviewDuplicates), [reviewDuplicates]); const transactionID = TransactionUtils.getTransactionID(route.params.threadReportID ?? ''); diff --git a/src/pages/TransactionDuplicate/Review.tsx b/src/pages/TransactionDuplicate/Review.tsx index e61f9382b895..cb27ecfcbb3c 100644 --- a/src/pages/TransactionDuplicate/Review.tsx +++ b/src/pages/TransactionDuplicate/Review.tsx @@ -1,4 +1,3 @@ -import type {RouteProp} from '@react-navigation/native'; import {useRoute} from '@react-navigation/native'; import React, {useMemo} from 'react'; import {View} from 'react-native'; @@ -12,6 +11,7 @@ import useCurrentUserPersonalDetails from '@hooks/useCurrentUserPersonalDetails' import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types'; import type {TransactionDuplicateNavigatorParamList} from '@libs/Navigation/types'; import * as ReportActionsUtils from '@libs/ReportActionsUtils'; import * as ReportUtils from '@libs/ReportUtils'; @@ -25,7 +25,7 @@ import DuplicateTransactionsList from './DuplicateTransactionsList'; function TransactionDuplicateReview() { const styles = useThemeStyles(); const {translate} = useLocalize(); - const route = useRoute>(); + const route = useRoute>(); const currentPersonalDetails = useCurrentUserPersonalDetails(); const [report] = useOnyx(`${ONYXKEYS.COLLECTION.REPORT}${route.params.threadReportID}`); const reportAction = ReportActionsUtils.getReportAction(report?.parentReportID ?? '-1', report?.parentReportActionID ?? '-1'); diff --git a/src/pages/TransactionDuplicate/ReviewBillable.tsx b/src/pages/TransactionDuplicate/ReviewBillable.tsx index 666741daf303..2473c18a5551 100644 --- a/src/pages/TransactionDuplicate/ReviewBillable.tsx +++ b/src/pages/TransactionDuplicate/ReviewBillable.tsx @@ -1,4 +1,3 @@ -import type {RouteProp} from '@react-navigation/native'; import {useRoute} from '@react-navigation/native'; import React, {useMemo} from 'react'; import HeaderWithBackButton from '@components/HeaderWithBackButton'; @@ -6,6 +5,7 @@ import ScreenWrapper from '@components/ScreenWrapper'; import useLocalize from '@hooks/useLocalize'; import useReviewDuplicatesNavigation from '@hooks/useReviewDuplicatesNavigation'; import {setReviewDuplicatesKey} from '@libs/actions/Transaction'; +import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types'; import type {TransactionDuplicateNavigatorParamList} from '@libs/Navigation/types'; import * as TransactionUtils from '@libs/TransactionUtils'; import type SCREENS from '@src/SCREENS'; @@ -13,7 +13,7 @@ import type {FieldItemType} from './ReviewFields'; import ReviewFields from './ReviewFields'; function ReviewBillable() { - const route = useRoute>(); + const route = useRoute>(); const {translate} = useLocalize(); const transactionID = TransactionUtils.getTransactionID(route.params.threadReportID ?? ''); const compareResult = TransactionUtils.compareDuplicateTransactionFields(transactionID); diff --git a/src/pages/TransactionDuplicate/ReviewCategory.tsx b/src/pages/TransactionDuplicate/ReviewCategory.tsx index 09cbdcd28327..05e90733d6bd 100644 --- a/src/pages/TransactionDuplicate/ReviewCategory.tsx +++ b/src/pages/TransactionDuplicate/ReviewCategory.tsx @@ -1,4 +1,3 @@ -import type {RouteProp} from '@react-navigation/native'; import {useRoute} from '@react-navigation/native'; import React, {useMemo} from 'react'; import HeaderWithBackButton from '@components/HeaderWithBackButton'; @@ -6,6 +5,7 @@ import ScreenWrapper from '@components/ScreenWrapper'; import useLocalize from '@hooks/useLocalize'; import useReviewDuplicatesNavigation from '@hooks/useReviewDuplicatesNavigation'; import {setReviewDuplicatesKey} from '@libs/actions/Transaction'; +import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types'; import type {TransactionDuplicateNavigatorParamList} from '@libs/Navigation/types'; import * as TransactionUtils from '@libs/TransactionUtils'; import type SCREENS from '@src/SCREENS'; @@ -13,7 +13,7 @@ import type {FieldItemType} from './ReviewFields'; import ReviewFields from './ReviewFields'; function ReviewCategory() { - const route = useRoute>(); + const route = useRoute>(); const {translate} = useLocalize(); const transactionID = TransactionUtils.getTransactionID(route.params.threadReportID ?? ''); const compareResult = TransactionUtils.compareDuplicateTransactionFields(transactionID); diff --git a/src/pages/TransactionDuplicate/ReviewDescription.tsx b/src/pages/TransactionDuplicate/ReviewDescription.tsx index 3d74d8cc36e1..cc4648acd667 100644 --- a/src/pages/TransactionDuplicate/ReviewDescription.tsx +++ b/src/pages/TransactionDuplicate/ReviewDescription.tsx @@ -1,4 +1,3 @@ -import type {RouteProp} from '@react-navigation/native'; import {useRoute} from '@react-navigation/native'; import React, {useMemo} from 'react'; import HeaderWithBackButton from '@components/HeaderWithBackButton'; @@ -6,6 +5,7 @@ import ScreenWrapper from '@components/ScreenWrapper'; import useLocalize from '@hooks/useLocalize'; import useReviewDuplicatesNavigation from '@hooks/useReviewDuplicatesNavigation'; import {setReviewDuplicatesKey} from '@libs/actions/Transaction'; +import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types'; import type {TransactionDuplicateNavigatorParamList} from '@libs/Navigation/types'; import * as TransactionUtils from '@libs/TransactionUtils'; import type SCREENS from '@src/SCREENS'; @@ -13,7 +13,7 @@ import type {FieldItemType} from './ReviewFields'; import ReviewFields from './ReviewFields'; function ReviewDescription() { - const route = useRoute>(); + const route = useRoute>(); const {translate} = useLocalize(); const transactionID = TransactionUtils.getTransactionID(route.params.threadReportID ?? ''); const compareResult = TransactionUtils.compareDuplicateTransactionFields(transactionID); diff --git a/src/pages/TransactionDuplicate/ReviewMerchant.tsx b/src/pages/TransactionDuplicate/ReviewMerchant.tsx index 47dd43d1d334..657bbae7ce86 100644 --- a/src/pages/TransactionDuplicate/ReviewMerchant.tsx +++ b/src/pages/TransactionDuplicate/ReviewMerchant.tsx @@ -1,4 +1,3 @@ -import type {RouteProp} from '@react-navigation/native'; import {useRoute} from '@react-navigation/native'; import React, {useMemo} from 'react'; import HeaderWithBackButton from '@components/HeaderWithBackButton'; @@ -6,6 +5,7 @@ import ScreenWrapper from '@components/ScreenWrapper'; import useLocalize from '@hooks/useLocalize'; import useReviewDuplicatesNavigation from '@hooks/useReviewDuplicatesNavigation'; import {setReviewDuplicatesKey} from '@libs/actions/Transaction'; +import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types'; import type {TransactionDuplicateNavigatorParamList} from '@libs/Navigation/types'; import * as TransactionUtils from '@libs/TransactionUtils'; import type SCREENS from '@src/SCREENS'; @@ -13,7 +13,7 @@ import type {FieldItemType} from './ReviewFields'; import ReviewFields from './ReviewFields'; function ReviewMerchant() { - const route = useRoute>(); + const route = useRoute>(); const {translate} = useLocalize(); const transactionID = TransactionUtils.getTransactionID(route.params.threadReportID ?? ''); const compareResult = TransactionUtils.compareDuplicateTransactionFields(transactionID); diff --git a/src/pages/TransactionDuplicate/ReviewReimbursable.tsx b/src/pages/TransactionDuplicate/ReviewReimbursable.tsx index 0b932e8085db..922f35d4e861 100644 --- a/src/pages/TransactionDuplicate/ReviewReimbursable.tsx +++ b/src/pages/TransactionDuplicate/ReviewReimbursable.tsx @@ -1,4 +1,3 @@ -import type {RouteProp} from '@react-navigation/native'; import {useRoute} from '@react-navigation/native'; import React, {useMemo} from 'react'; import HeaderWithBackButton from '@components/HeaderWithBackButton'; @@ -6,6 +5,7 @@ import ScreenWrapper from '@components/ScreenWrapper'; import useLocalize from '@hooks/useLocalize'; import useReviewDuplicatesNavigation from '@hooks/useReviewDuplicatesNavigation'; import {setReviewDuplicatesKey} from '@libs/actions/Transaction'; +import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types'; import type {TransactionDuplicateNavigatorParamList} from '@libs/Navigation/types'; import * as TransactionUtils from '@libs/TransactionUtils'; import type SCREENS from '@src/SCREENS'; @@ -13,7 +13,7 @@ import type {FieldItemType} from './ReviewFields'; import ReviewFields from './ReviewFields'; function ReviewReimbursable() { - const route = useRoute>(); + const route = useRoute>(); const {translate} = useLocalize(); const transactionID = TransactionUtils.getTransactionID(route.params.threadReportID ?? ''); const compareResult = TransactionUtils.compareDuplicateTransactionFields(transactionID); diff --git a/src/pages/TransactionDuplicate/ReviewTag.tsx b/src/pages/TransactionDuplicate/ReviewTag.tsx index 03fb627abd8e..5d8fe2192e89 100644 --- a/src/pages/TransactionDuplicate/ReviewTag.tsx +++ b/src/pages/TransactionDuplicate/ReviewTag.tsx @@ -1,4 +1,3 @@ -import type {RouteProp} from '@react-navigation/native'; import {useRoute} from '@react-navigation/native'; import React, {useMemo} from 'react'; import HeaderWithBackButton from '@components/HeaderWithBackButton'; @@ -6,6 +5,7 @@ import ScreenWrapper from '@components/ScreenWrapper'; import useLocalize from '@hooks/useLocalize'; import useReviewDuplicatesNavigation from '@hooks/useReviewDuplicatesNavigation'; import {setReviewDuplicatesKey} from '@libs/actions/Transaction'; +import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types'; import type {TransactionDuplicateNavigatorParamList} from '@libs/Navigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import * as TransactionUtils from '@libs/TransactionUtils'; @@ -14,7 +14,7 @@ import type {FieldItemType} from './ReviewFields'; import ReviewFields from './ReviewFields'; function ReviewTag() { - const route = useRoute>(); + const route = useRoute>(); const {translate} = useLocalize(); const transactionID = TransactionUtils.getTransactionID(route.params.threadReportID ?? ''); diff --git a/src/pages/TransactionDuplicate/ReviewTaxCode.tsx b/src/pages/TransactionDuplicate/ReviewTaxCode.tsx index 78b7c1934715..109b0d96665c 100644 --- a/src/pages/TransactionDuplicate/ReviewTaxCode.tsx +++ b/src/pages/TransactionDuplicate/ReviewTaxCode.tsx @@ -1,4 +1,3 @@ -import type {RouteProp} from '@react-navigation/native'; import {useRoute} from '@react-navigation/native'; import React, {useCallback, useMemo} from 'react'; import {useOnyx} from 'react-native-onyx'; @@ -8,6 +7,7 @@ import useLocalize from '@hooks/useLocalize'; import useReviewDuplicatesNavigation from '@hooks/useReviewDuplicatesNavigation'; import {setReviewDuplicatesKey} from '@libs/actions/Transaction'; import * as CurrencyUtils from '@libs/CurrencyUtils'; +import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types'; import type {TransactionDuplicateNavigatorParamList} from '@libs/Navigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import * as TransactionUtils from '@libs/TransactionUtils'; @@ -18,7 +18,7 @@ import type {FieldItemType} from './ReviewFields'; import ReviewFields from './ReviewFields'; function ReviewTaxRate() { - const route = useRoute>(); + const route = useRoute>(); const {translate} = useLocalize(); const [report] = useOnyx(`${ONYXKEYS.COLLECTION.REPORT}${route.params.threadReportID}`); const policy = PolicyUtils.getPolicy(report?.policyID ?? ''); diff --git a/src/pages/TransactionReceiptPage.tsx b/src/pages/TransactionReceiptPage.tsx index d51f39b6c630..4ec3a333316d 100644 --- a/src/pages/TransactionReceiptPage.tsx +++ b/src/pages/TransactionReceiptPage.tsx @@ -1,8 +1,8 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useEffect} from 'react'; import {useOnyx} from 'react-native-onyx'; import AttachmentModal from '@components/AttachmentModal'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {AuthScreensParamList, RootStackParamList, State} from '@libs/Navigation/types'; import * as ReceiptUtils from '@libs/ReceiptUtils'; import * as ReportActionUtils from '@libs/ReportActionsUtils'; @@ -16,7 +16,7 @@ import NAVIGATORS from '@src/NAVIGATORS'; import ONYXKEYS from '@src/ONYXKEYS'; import type SCREENS from '@src/SCREENS'; -type TransactionReceiptProps = StackScreenProps; +type TransactionReceiptProps = PlatformStackScreenProps; function TransactionReceipt({route}: TransactionReceiptProps) { const [report] = useOnyx(`${ONYXKEYS.COLLECTION.REPORT}${route.params.reportID ?? '-1'}`); diff --git a/src/pages/UnlinkLoginPage.tsx b/src/pages/UnlinkLoginPage.tsx index 9869e4a70e68..8ef7c9a19979 100644 --- a/src/pages/UnlinkLoginPage.tsx +++ b/src/pages/UnlinkLoginPage.tsx @@ -1,10 +1,10 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useEffect} from 'react'; import {withOnyx} from 'react-native-onyx'; import type {OnyxEntry} from 'react-native-onyx'; import FullScreenLoadingIndicator from '@components/FullscreenLoadingIndicator'; import usePrevious from '@hooks/usePrevious'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {PublicScreensParamList} from '@navigation/types'; import * as Session from '@userActions/Session'; import ONYXKEYS from '@src/ONYXKEYS'; @@ -16,7 +16,7 @@ type UnlinkLoginPageOnyxProps = { account: OnyxEntry; }; -type UnlinkLoginPageProps = UnlinkLoginPageOnyxProps & StackScreenProps; +type UnlinkLoginPageProps = UnlinkLoginPageOnyxProps & PlatformStackScreenProps; function UnlinkLoginPage({route, account}: UnlinkLoginPageProps) { const accountID = route.params.accountID ?? -1; diff --git a/src/pages/ValidateLoginPage/types.ts b/src/pages/ValidateLoginPage/types.ts index a42eec7131db..f6f057ba66aa 100644 --- a/src/pages/ValidateLoginPage/types.ts +++ b/src/pages/ValidateLoginPage/types.ts @@ -1,7 +1,7 @@ -import type {StackScreenProps} from '@react-navigation/stack'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {PublicScreensParamList} from '@libs/Navigation/types'; import type SCREENS from '@src/SCREENS'; -type ValidateLoginPageProps = StackScreenProps; +type ValidateLoginPageProps = PlatformStackScreenProps; export default ValidateLoginPageProps; diff --git a/src/pages/home/ReportScreen.tsx b/src/pages/home/ReportScreen.tsx index dd38a0716377..5706b9c5140e 100644 --- a/src/pages/home/ReportScreen.tsx +++ b/src/pages/home/ReportScreen.tsx @@ -1,6 +1,5 @@ import {PortalHost} from '@gorhom/portal'; import {useIsFocused} from '@react-navigation/native'; -import type {StackScreenProps} from '@react-navigation/stack'; import lodashIsEqual from 'lodash/isEqual'; import React, {memo, useCallback, useEffect, useMemo, useRef, useState} from 'react'; import type {FlatList, ViewStyle} from 'react-native'; @@ -32,6 +31,7 @@ import useViewportOffsetTop from '@hooks/useViewportOffsetTop'; import Timing from '@libs/actions/Timing'; import Log from '@libs/Log'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import clearReportNotifications from '@libs/Notification/clearReportNotifications'; import Performance from '@libs/Performance'; import * as PersonalDetailsUtils from '@libs/PersonalDetailsUtils'; @@ -56,7 +56,7 @@ import ReportFooter from './report/ReportFooter'; import type {ActionListContextType, ReactionListRef, ScrollPosition} from './ReportScreenContext'; import {ActionListContext, ReactionListContext} from './ReportScreenContext'; -type ReportScreenNavigationProps = StackScreenProps; +type ReportScreenNavigationProps = PlatformStackScreenProps; type ReportScreenProps = CurrentReportIDContextValue & ReportScreenNavigationProps; diff --git a/src/pages/home/report/ReportActionsList.tsx b/src/pages/home/report/ReportActionsList.tsx index ce925d4375af..48cbf5eaaf13 100644 --- a/src/pages/home/report/ReportActionsList.tsx +++ b/src/pages/home/report/ReportActionsList.tsx @@ -1,6 +1,5 @@ import type {ListRenderItemInfo} from '@react-native/virtualized-lists/Lists/VirtualizedList'; import {useIsFocused, useRoute} from '@react-navigation/native'; -import type {RouteProp} from '@react-navigation/native'; // eslint-disable-next-line lodash/import-scope import type {DebouncedFunc} from 'lodash'; import React, {memo, useCallback, useEffect, useMemo, useRef, useState} from 'react'; @@ -20,6 +19,7 @@ import useThemeStyles from '@hooks/useThemeStyles'; import useWindowDimensions from '@hooks/useWindowDimensions'; import DateUtils from '@libs/DateUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types'; import * as ReportActionsUtils from '@libs/ReportActionsUtils'; import * as ReportUtils from '@libs/ReportUtils'; import Visibility from '@libs/Visibility'; @@ -162,7 +162,7 @@ function ReportActionsList({ const {shouldUseNarrowLayout} = useResponsiveLayout(); const {isOffline} = useNetwork(); - const route = useRoute>(); + const route = useRoute>(); const reportScrollManager = useReportScrollManager(); const userActiveSince = useRef(DateUtils.getDBTime()); const lastMessageTime = useRef(null); diff --git a/src/pages/home/report/ReportActionsView.tsx b/src/pages/home/report/ReportActionsView.tsx index 8f4395fdb715..9163f2798d4e 100755 --- a/src/pages/home/report/ReportActionsView.tsx +++ b/src/pages/home/report/ReportActionsView.tsx @@ -1,4 +1,3 @@ -import type {RouteProp} from '@react-navigation/native'; import {useIsFocused, useRoute} from '@react-navigation/native'; import lodashIsEqual from 'lodash/isEqual'; import React, {useCallback, useContext, useEffect, useMemo, useRef, useState} from 'react'; @@ -12,6 +11,7 @@ import usePrevious from '@hooks/usePrevious'; import useResponsiveLayout from '@hooks/useResponsiveLayout'; import DateUtils from '@libs/DateUtils'; import getIsReportFullyVisible from '@libs/getIsReportFullyVisible'; +import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types'; import type {AuthScreensParamList} from '@libs/Navigation/types'; import * as NumberUtils from '@libs/NumberUtils'; import {generateNewRandomInt} from '@libs/NumberUtils'; @@ -79,7 +79,7 @@ function ReportActionsView({ }: ReportActionsViewProps) { useCopySelectionHelper(); const reactionListRef = useContext(ReactionListContext); - const route = useRoute>(); + const route = useRoute>(); const [session] = useOnyx(ONYXKEYS.SESSION); const [transactionThreadReportActions] = useOnyx(`${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${transactionThreadReportID ?? -1}`, { selector: (reportActions: OnyxEntry) => ReportActionsUtils.getSortedReportActionsForDisplay(reportActions, true), diff --git a/src/pages/home/report/ReportAttachments.tsx b/src/pages/home/report/ReportAttachments.tsx index 1e16cfdddf4f..ed14fc24d551 100644 --- a/src/pages/home/report/ReportAttachments.tsx +++ b/src/pages/home/report/ReportAttachments.tsx @@ -1,17 +1,17 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback} from 'react'; import {useOnyx} from 'react-native-onyx'; import AttachmentModal from '@components/AttachmentModal'; import type {Attachment} from '@components/Attachments/types'; import ComposerFocusManager from '@libs/ComposerFocusManager'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {AuthScreensParamList} from '@libs/Navigation/types'; import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; -type ReportAttachmentsProps = StackScreenProps; +type ReportAttachmentsProps = PlatformStackScreenProps; function ReportAttachments({route}: ReportAttachmentsProps) { const reportID = route.params.reportID; diff --git a/src/pages/home/report/ReportDetailsExportPage.tsx b/src/pages/home/report/ReportDetailsExportPage.tsx index 0da9a7c1bb8e..b7b66a356a86 100644 --- a/src/pages/home/report/ReportDetailsExportPage.tsx +++ b/src/pages/home/report/ReportDetailsExportPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useState} from 'react'; import {useOnyx} from 'react-native-onyx'; import type {ValueOf} from 'type-fest'; @@ -13,6 +12,7 @@ import SelectionScreen from '@components/SelectionScreen'; import useLocalize from '@hooks/useLocalize'; import * as ReportActions from '@libs/actions/Report'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {ReportDetailsNavigatorParamList} from '@libs/Navigation/types'; import * as ReportUtils from '@libs/ReportUtils'; import CONST from '@src/CONST'; @@ -20,7 +20,7 @@ import ONYXKEYS from '@src/ONYXKEYS'; import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; -type ReportDetailsExportPageProps = StackScreenProps; +type ReportDetailsExportPageProps = PlatformStackScreenProps; type ExportType = ValueOf; diff --git a/src/pages/home/report/ReportDetailsShareCodePage.tsx b/src/pages/home/report/ReportDetailsShareCodePage.tsx index 4caa29209fa9..2f95572067c3 100644 --- a/src/pages/home/report/ReportDetailsShareCodePage.tsx +++ b/src/pages/home/report/ReportDetailsShareCodePage.tsx @@ -1,7 +1,7 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import {withOnyx} from 'react-native-onyx'; import type {OnyxEntry} from 'react-native-onyx'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {ReportDetailsNavigatorParamList} from '@libs/Navigation/types'; import * as ReportUtils from '@libs/ReportUtils'; import NotFoundPage from '@pages/ErrorPage/NotFoundPage'; @@ -18,7 +18,7 @@ type ReportDetailsShareCodePageOnyxProps = { type ReportDetailsShareCodePageProps = ReportDetailsShareCodePageOnyxProps & WithReportOrNotFoundProps & - StackScreenProps; + PlatformStackScreenProps; function ReportDetailsShareCodePage({report, policy, route}: ReportDetailsShareCodePageProps) { if (ReportUtils.isSelfDM(report)) { diff --git a/src/pages/home/report/UserTypingEventListener.tsx b/src/pages/home/report/UserTypingEventListener.tsx index fa0eed4d57c5..73062902f63e 100644 --- a/src/pages/home/report/UserTypingEventListener.tsx +++ b/src/pages/home/report/UserTypingEventListener.tsx @@ -1,9 +1,9 @@ -import type {RouteProp} from '@react-navigation/native'; import {useIsFocused, useRoute} from '@react-navigation/native'; import {useEffect, useRef} from 'react'; import {InteractionManager} from 'react-native'; import {useOnyx} from 'react-native-onyx'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types'; import type {AuthScreensParamList} from '@libs/Navigation/types'; import * as Report from '@userActions/Report'; import ONYXKEYS from '@src/ONYXKEYS'; @@ -19,7 +19,7 @@ function UserTypingEventListener({report}: UserTypingEventListenerProps) { const didSubscribeToReportTypingEvents = useRef(false); const reportID = report.reportID; const isFocused = useIsFocused(); - const route = useRoute>(); + const route = useRoute>(); useEffect( () => () => { diff --git a/src/pages/home/report/withReportAndReportActionOrNotFound.tsx b/src/pages/home/report/withReportAndReportActionOrNotFound.tsx index b8bb25d39c86..9e0305429590 100644 --- a/src/pages/home/report/withReportAndReportActionOrNotFound.tsx +++ b/src/pages/home/report/withReportAndReportActionOrNotFound.tsx @@ -1,5 +1,4 @@ /* eslint-disable rulesdir/no-negated-variables */ -import type {StackScreenProps} from '@react-navigation/stack'; import type {ComponentType, ForwardedRef, RefAttributes} from 'react'; import React, {useCallback, useEffect} from 'react'; import type {OnyxCollection, OnyxEntry, WithOnyxState} from 'react-native-onyx'; @@ -7,6 +6,7 @@ import {withOnyx} from 'react-native-onyx'; import FullscreenLoadingIndicator from '@components/FullscreenLoadingIndicator'; import useResponsiveLayout from '@hooks/useResponsiveLayout'; import getComponentDisplayName from '@libs/getComponentDisplayName'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {FlagCommentNavigatorParamList, SplitDetailsNavigatorParamList} from '@libs/Navigation/types'; import * as ReportUtils from '@libs/ReportUtils'; import NotFoundPage from '@pages/ErrorPage/NotFoundPage'; @@ -43,7 +43,7 @@ type OnyxProps = { }; type WithReportAndReportActionOrNotFoundProps = OnyxProps & - StackScreenProps; + PlatformStackScreenProps; export default function ( WrappedComponent: ComponentType>, diff --git a/src/pages/home/report/withReportOrNotFound.tsx b/src/pages/home/report/withReportOrNotFound.tsx index 7947ab0a04b4..1607370c864b 100644 --- a/src/pages/home/report/withReportOrNotFound.tsx +++ b/src/pages/home/report/withReportOrNotFound.tsx @@ -1,11 +1,11 @@ /* eslint-disable rulesdir/no-negated-variables */ -import type {RouteProp} from '@react-navigation/native'; import type {ComponentType, ForwardedRef, RefAttributes} from 'react'; import React, {useEffect} from 'react'; import type {OnyxCollection, OnyxEntry} from 'react-native-onyx'; import {withOnyx} from 'react-native-onyx'; import FullscreenLoadingIndicator from '@components/FullscreenLoadingIndicator'; import getComponentDisplayName from '@libs/getComponentDisplayName'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as ReportUtils from '@libs/ReportUtils'; import type { ParticipantsNavigatorParamList, @@ -39,20 +39,23 @@ type WithReportOrNotFoundOnyxProps = { isLoadingReportData: OnyxEntry; }; -type WithReportOrNotFoundProps = WithReportOrNotFoundOnyxProps & { - route: - | RouteProp - | RouteProp - | RouteProp - | RouteProp - | RouteProp - | RouteProp - | RouteProp - | RouteProp - | RouteProp; +type ScreenProps = + | PlatformStackScreenProps + | PlatformStackScreenProps + | PlatformStackScreenProps + | PlatformStackScreenProps + | PlatformStackScreenProps + | PlatformStackScreenProps + | PlatformStackScreenProps + | PlatformStackScreenProps + | PlatformStackScreenProps; +type WithReportOrNotFoundProps = WithReportOrNotFoundOnyxProps & { /** The report currently being looked at */ report: OnyxTypes.Report; + + route: ScreenProps['route']; + navigation: ScreenProps['navigation']; }; export default function ( diff --git a/src/pages/iou/HoldReasonPage.tsx b/src/pages/iou/HoldReasonPage.tsx index 7523a0932c42..61bf7399889a 100644 --- a/src/pages/iou/HoldReasonPage.tsx +++ b/src/pages/iou/HoldReasonPage.tsx @@ -1,37 +1,24 @@ -import type {RouteProp} from '@react-navigation/native'; import React, {useCallback, useEffect} from 'react'; import {useOnyx} from 'react-native-onyx'; import type {FormInputErrors, FormOnyxValues} from '@components/Form/types'; import useLocalize from '@hooks/useLocalize'; import * as ErrorUtils from '@libs/ErrorUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; +import type {MoneyRequestNavigatorParamList, SearchReportParamList} from '@libs/Navigation/types'; import * as ReportActionsUtils from '@libs/ReportActionsUtils'; import * as ReportUtils from '@libs/ReportUtils'; import * as ValidationUtils from '@libs/ValidationUtils'; import * as FormActions from '@userActions/FormActions'; import * as IOU from '@userActions/IOU'; import ONYXKEYS from '@src/ONYXKEYS'; -import type {Route} from '@src/ROUTES'; +import type SCREENS from '@src/SCREENS'; import INPUT_IDS from '@src/types/form/MoneyRequestHoldReasonForm'; import HoldReasonFormView from './HoldReasonFormView'; -type HoldReasonPageRouteParams = { - /** ID of the transaction the page was opened for */ - transactionID: string; - - /** ID of the report that user is providing hold reason to */ - reportID: string; - - /** Link to previous page */ - backTo: Route; - - searchHash?: number; -}; - -type HoldReasonPageProps = { - /** Navigation route context info provided by react navigation */ - route: RouteProp<{params: HoldReasonPageRouteParams}>; -}; +type HoldReasonPageProps = + | PlatformStackScreenProps + | PlatformStackScreenProps; function HoldReasonPage({route}: HoldReasonPageProps) { const {translate} = useLocalize(); diff --git a/src/pages/iou/SplitBillDetailsPage.tsx b/src/pages/iou/SplitBillDetailsPage.tsx index d0ca6b41e779..821cd11ad59c 100644 --- a/src/pages/iou/SplitBillDetailsPage.tsx +++ b/src/pages/iou/SplitBillDetailsPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import type {ComponentType} from 'react'; import React, {useCallback, useMemo, useState} from 'react'; import {View} from 'react-native'; @@ -15,6 +14,7 @@ import useLocalize from '@hooks/useLocalize'; import useTheme from '@hooks/useTheme'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SplitDetailsNavigatorParamList} from '@libs/Navigation/types'; import * as OptionsListUtils from '@libs/OptionsListUtils'; import * as ReportActionsUtils from '@libs/ReportActionsUtils'; @@ -58,7 +58,7 @@ type SplitBillDetailsPageOnyxProps = SplitBillDetailsPageTransactionOnyxProps & type SplitBillDetailsPageProps = WithReportAndReportActionOrNotFoundProps & SplitBillDetailsPageOnyxProps & - StackScreenProps; + PlatformStackScreenProps; function SplitBillDetailsPage({personalDetails, report, route, reportActions, transaction, draftTransaction, session}: SplitBillDetailsPageProps) { const styles = useThemeStyles(); diff --git a/src/pages/iou/request/IOURequestStartPage.tsx b/src/pages/iou/request/IOURequestStartPage.tsx index c4abf714502a..6570b2b1aaf2 100644 --- a/src/pages/iou/request/IOURequestStartPage.tsx +++ b/src/pages/iou/request/IOURequestStartPage.tsx @@ -35,6 +35,7 @@ function IOURequestStartPage({ route: { params: {iouType, reportID}, }, + navigation, }: IOURequestStartPageProps) { const styles = useThemeStyles(); const {translate} = useLocalize(); @@ -148,6 +149,7 @@ function IOURequestStartPage({ )} @@ -155,7 +157,10 @@ function IOURequestStartPage({ {() => ( - + )} @@ -163,7 +168,10 @@ function IOURequestStartPage({ {() => ( - + )} @@ -176,6 +184,7 @@ function IOURequestStartPage({ > diff --git a/src/pages/iou/request/step/withFullTransactionOrNotFound.tsx b/src/pages/iou/request/step/withFullTransactionOrNotFound.tsx index 0ddddf7ff878..4f0b2b25cf52 100644 --- a/src/pages/iou/request/step/withFullTransactionOrNotFound.tsx +++ b/src/pages/iou/request/step/withFullTransactionOrNotFound.tsx @@ -1,4 +1,3 @@ -import type {RouteProp} from '@react-navigation/native'; import {useIsFocused} from '@react-navigation/native'; import type {ComponentType, ForwardedRef, RefAttributes} from 'react'; import React, {forwardRef} from 'react'; @@ -7,6 +6,7 @@ import type {OnyxEntry} from 'react-native-onyx'; import FullPageNotFoundView from '@components/BlockingViews/FullPageNotFoundView'; import getComponentDisplayName from '@libs/getComponentDisplayName'; import * as IOUUtils from '@libs/IOUUtils'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {MoneyRequestNavigatorParamList} from '@libs/Navigation/types'; import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; @@ -38,11 +38,8 @@ type MoneyRequestRouteName = | typeof SCREENS.MONEY_REQUEST.STEP_SEND_FROM | typeof SCREENS.MONEY_REQUEST.STEP_COMPANY_INFO; -type Route = RouteProp; - -type WithFullTransactionOrNotFoundProps = WithFullTransactionOrNotFoundOnyxProps & { - route: Route; -}; +type WithFullTransactionOrNotFoundProps = WithFullTransactionOrNotFoundOnyxProps & + PlatformStackScreenProps; export default function , TRef>( WrappedComponent: ComponentType>, diff --git a/src/pages/iou/request/step/withWritableReportOrNotFound.tsx b/src/pages/iou/request/step/withWritableReportOrNotFound.tsx index 2361d58dc2be..f4fa34c406aa 100644 --- a/src/pages/iou/request/step/withWritableReportOrNotFound.tsx +++ b/src/pages/iou/request/step/withWritableReportOrNotFound.tsx @@ -1,4 +1,3 @@ -import type {RouteProp} from '@react-navigation/core'; import type {ComponentType, ForwardedRef, RefAttributes} from 'react'; import React, {forwardRef, useEffect} from 'react'; import type {OnyxEntry} from 'react-native-onyx'; @@ -6,6 +5,7 @@ import {useOnyx} from 'react-native-onyx'; import FullPageNotFoundView from '@components/BlockingViews/FullPageNotFoundView'; import FullScreenLoadingIndicator from '@components/FullscreenLoadingIndicator'; import getComponentDisplayName from '@libs/getComponentDisplayName'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {MoneyRequestNavigatorParamList} from '@libs/Navigation/types'; import * as ReportUtils from '@libs/ReportUtils'; import * as ReportActions from '@userActions/Report'; @@ -42,9 +42,7 @@ type MoneyRequestRouteName = | typeof SCREENS.MONEY_REQUEST.STEP_SEND_FROM | typeof SCREENS.MONEY_REQUEST.STEP_COMPANY_INFO; -type Route = RouteProp; - -type WithWritableReportOrNotFoundProps = WithWritableReportOrNotFoundOnyxProps & {route: Route}; +type WithWritableReportOrNotFoundProps = WithWritableReportOrNotFoundOnyxProps & PlatformStackScreenProps; export default function , TRef>( WrappedComponent: ComponentType>, diff --git a/src/pages/settings/AboutPage/ConsolePage.tsx b/src/pages/settings/AboutPage/ConsolePage.tsx index b156a6c7b2f1..be0fcf2f3021 100644 --- a/src/pages/settings/AboutPage/ConsolePage.tsx +++ b/src/pages/settings/AboutPage/ConsolePage.tsx @@ -1,4 +1,3 @@ -import type {RouteProp} from '@react-navigation/native'; import {useRoute} from '@react-navigation/native'; import {format} from 'date-fns'; import React, {useCallback, useMemo, useRef, useState} from 'react'; @@ -26,6 +25,7 @@ import type {Log} from '@libs/Console'; import localFileCreate from '@libs/localFileCreate'; import localFileDownload from '@libs/localFileDownload'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@navigation/types'; import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; @@ -50,7 +50,7 @@ function ConsolePage() { const styles = useThemeStyles(); const theme = useTheme(); const {windowWidth} = useWindowDimensions(); - const route = useRoute>(); + const route = useRoute>(); const menuItems: PopoverMenuItem[] = useMemo( () => [ diff --git a/src/pages/settings/AboutPage/ShareLogPage.tsx b/src/pages/settings/AboutPage/ShareLogPage.tsx index 8f0623f99d32..ad4006b06e03 100644 --- a/src/pages/settings/AboutPage/ShareLogPage.tsx +++ b/src/pages/settings/AboutPage/ShareLogPage.tsx @@ -1,10 +1,10 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import type SCREENS from '@src/SCREENS'; import ShareLogList from './ShareLogList'; -type ShareLogPageProps = StackScreenProps; +type ShareLogPageProps = PlatformStackScreenProps; function ShareLogPage({route}: ShareLogPageProps) { return ; diff --git a/src/pages/settings/ExitSurvey/ExitSurveyConfirmPage.tsx b/src/pages/settings/ExitSurvey/ExitSurveyConfirmPage.tsx index 2e567fe82974..135d50a4c89f 100644 --- a/src/pages/settings/ExitSurvey/ExitSurveyConfirmPage.tsx +++ b/src/pages/settings/ExitSurvey/ExitSurveyConfirmPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useEffect} from 'react'; import {View} from 'react-native'; import {withOnyx} from 'react-native-onyx'; @@ -13,6 +12,7 @@ import Text from '@components/Text'; import useLocalize from '@hooks/useLocalize'; import useNetwork from '@hooks/useNetwork'; import useThemeStyles from '@hooks/useThemeStyles'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import Navigation from '@navigation/Navigation'; import type {SettingsNavigatorParamList} from '@navigation/types'; import variables from '@styles/variables'; @@ -30,7 +30,7 @@ type ExitSurveyConfirmPageOnyxProps = { exitReason?: ExitReason | null; }; -type ExitSurveyConfirmPageProps = ExitSurveyConfirmPageOnyxProps & StackScreenProps; +type ExitSurveyConfirmPageProps = ExitSurveyConfirmPageOnyxProps & PlatformStackScreenProps; function ExitSurveyConfirmPage({exitReason, route, navigation}: ExitSurveyConfirmPageProps) { const {translate} = useLocalize(); diff --git a/src/pages/settings/ExitSurvey/ExitSurveyResponsePage.tsx b/src/pages/settings/ExitSurvey/ExitSurveyResponsePage.tsx index 1fb7cfbc94ab..87d29aba0e88 100644 --- a/src/pages/settings/ExitSurvey/ExitSurveyResponsePage.tsx +++ b/src/pages/settings/ExitSurvey/ExitSurveyResponsePage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useEffect} from 'react'; import {useOnyx} from 'react-native-onyx'; import FormProvider from '@components/Form/FormProvider'; @@ -17,6 +16,7 @@ import useSafeAreaInsets from '@hooks/useSafeAreaInsets'; import useStyleUtils from '@hooks/useStyleUtils'; import useThemeStyles from '@hooks/useThemeStyles'; import useWindowDimensions from '@hooks/useWindowDimensions'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import StatusBar from '@libs/StatusBar'; import updateMultilineInputRange from '@libs/updateMultilineInputRange'; import Navigation from '@navigation/Navigation'; @@ -31,7 +31,7 @@ import INPUT_IDS from '@src/types/form/ExitSurveyResponseForm'; import type {Errors} from '@src/types/onyx/OnyxCommon'; import ExitSurveyOffline from './ExitSurveyOffline'; -type ExitSurveyResponsePageProps = StackScreenProps; +type ExitSurveyResponsePageProps = PlatformStackScreenProps; function ExitSurveyResponsePage({route, navigation}: ExitSurveyResponsePageProps) { const [draftResponse = ''] = useOnyx(ONYXKEYS.FORMS.EXIT_SURVEY_RESPONSE_FORM_DRAFT, {selector: (value) => value?.[INPUT_IDS.RESPONSE]}); diff --git a/src/pages/settings/Profile/Contacts/ContactMethodDetailsPage.tsx b/src/pages/settings/Profile/Contacts/ContactMethodDetailsPage.tsx index 9fcc28f51912..d609355c10e5 100644 --- a/src/pages/settings/Profile/Contacts/ContactMethodDetailsPage.tsx +++ b/src/pages/settings/Profile/Contacts/ContactMethodDetailsPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import {Str} from 'expensify-common'; import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react'; import {InteractionManager, Keyboard, View} from 'react-native'; @@ -22,6 +21,7 @@ import useThemeStyles from '@hooks/useThemeStyles'; import {canUseTouchScreen} from '@libs/DeviceCapabilities'; import * as ErrorUtils from '@libs/ErrorUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import * as User from '@userActions/User'; import CONST from '@src/CONST'; @@ -33,7 +33,7 @@ import isLoadingOnyxValue from '@src/types/utils/isLoadingOnyxValue'; import ValidateCodeForm from './ValidateCodeForm'; import type {ValidateCodeFormHandle} from './ValidateCodeForm/BaseValidateCodeForm'; -type ContactMethodDetailsPageProps = StackScreenProps; +type ContactMethodDetailsPageProps = PlatformStackScreenProps; function ContactMethodDetailsPage({route}: ContactMethodDetailsPageProps) { const [loginList, loginListResult] = useOnyx(ONYXKEYS.LOGIN_LIST); diff --git a/src/pages/settings/Profile/Contacts/ContactMethodsPage.tsx b/src/pages/settings/Profile/Contacts/ContactMethodsPage.tsx index 3f23b3a802be..3ff3e3a6de2c 100644 --- a/src/pages/settings/Profile/Contacts/ContactMethodsPage.tsx +++ b/src/pages/settings/Profile/Contacts/ContactMethodsPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import {Str} from 'expensify-common'; import React, {useCallback} from 'react'; import {View} from 'react-native'; @@ -16,6 +15,7 @@ import Text from '@components/Text'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import * as User from '@userActions/User'; import CONST from '@src/CONST'; @@ -33,7 +33,7 @@ type ContactMethodsPageOnyxProps = { session: OnyxEntry; }; -type ContactMethodsPageProps = ContactMethodsPageOnyxProps & StackScreenProps; +type ContactMethodsPageProps = ContactMethodsPageOnyxProps & PlatformStackScreenProps; function ContactMethodsPage({loginList, session, route}: ContactMethodsPageProps) { const styles = useThemeStyles(); diff --git a/src/pages/settings/Profile/Contacts/NewContactMethodPage.tsx b/src/pages/settings/Profile/Contacts/NewContactMethodPage.tsx index fe07dcc8c99b..af71dfd0bc1c 100644 --- a/src/pages/settings/Profile/Contacts/NewContactMethodPage.tsx +++ b/src/pages/settings/Profile/Contacts/NewContactMethodPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import {Str} from 'expensify-common'; import React, {useCallback, useEffect, useRef, useState} from 'react'; import {View} from 'react-native'; @@ -18,8 +17,8 @@ import useThemeStyles from '@hooks/useThemeStyles'; import * as ErrorUtils from '@libs/ErrorUtils'; import * as LoginUtils from '@libs/LoginUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; -import * as UserUtils from '@libs/UserUtils'; import * as User from '@userActions/User'; import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; @@ -28,10 +27,11 @@ import type SCREENS from '@src/SCREENS'; import INPUT_IDS from '@src/types/form/NewContactMethodForm'; import type {Errors} from '@src/types/onyx/OnyxCommon'; -type NewContactMethodPageProps = StackScreenProps; +type NewContactMethodPageProps = PlatformStackScreenProps; function NewContactMethodPage({route}: NewContactMethodPageProps) { - const contactMethod = UserUtils.getContactMethod(); + const [account] = useOnyx(ONYXKEYS.ACCOUNT); + const contactMethod = account?.primaryLogin ?? ''; const styles = useThemeStyles(); const {translate} = useLocalize(); const loginInputRef = useRef(null); diff --git a/src/pages/settings/Profile/PersonalDetails/CountrySelectionPage.tsx b/src/pages/settings/Profile/PersonalDetails/CountrySelectionPage.tsx index a8afffe32d33..0af04b1dfd2a 100644 --- a/src/pages/settings/Profile/PersonalDetails/CountrySelectionPage.tsx +++ b/src/pages/settings/Profile/PersonalDetails/CountrySelectionPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useMemo, useState} from 'react'; import HeaderWithBackButton from '@components/HeaderWithBackButton'; import ScreenWrapper from '@components/ScreenWrapper'; @@ -6,6 +5,7 @@ import SelectionList from '@components/SelectionList'; import RadioListItem from '@components/SelectionList/RadioListItem'; import useLocalize from '@hooks/useLocalize'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import type {CountryData} from '@libs/searchCountryOptions'; import searchCountryOptions from '@libs/searchCountryOptions'; @@ -16,7 +16,7 @@ import type {TranslationPaths} from '@src/languages/types'; import type {Route} from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; -type CountrySelectionPageProps = StackScreenProps; +type CountrySelectionPageProps = PlatformStackScreenProps; function CountrySelectionPage({route, navigation}: CountrySelectionPageProps) { const [searchValue, setSearchValue] = useState(''); diff --git a/src/pages/settings/Profile/PersonalDetails/PersonalAddressPage.tsx b/src/pages/settings/Profile/PersonalDetails/PersonalAddressPage.tsx index 3e5287c82a42..668081242996 100644 --- a/src/pages/settings/Profile/PersonalDetails/PersonalAddressPage.tsx +++ b/src/pages/settings/Profile/PersonalDetails/PersonalAddressPage.tsx @@ -1,8 +1,8 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useMemo} from 'react'; import type {OnyxEntry} from 'react-native-onyx'; import {withOnyx} from 'react-native-onyx'; import useLocalize from '@hooks/useLocalize'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import * as PersonalDetailsUtils from '@libs/PersonalDetailsUtils'; import AddressPage from '@pages/AddressPage'; @@ -19,7 +19,7 @@ type PersonalAddressPageOnyxProps = { isLoadingApp: OnyxEntry; }; -type PersonalAddressPageProps = StackScreenProps & PersonalAddressPageOnyxProps; +type PersonalAddressPageProps = PlatformStackScreenProps & PersonalAddressPageOnyxProps; /** * Submit form to update user's first and last legal name diff --git a/src/pages/settings/Profile/ProfileAvatar.tsx b/src/pages/settings/Profile/ProfileAvatar.tsx index 977719f63879..cdaf1129d61b 100644 --- a/src/pages/settings/Profile/ProfileAvatar.tsx +++ b/src/pages/settings/Profile/ProfileAvatar.tsx @@ -1,9 +1,10 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useEffect} from 'react'; +import {InteractionManager} from 'react-native'; import type {OnyxEntry} from 'react-native-onyx'; import {withOnyx} from 'react-native-onyx'; import AttachmentModal from '@components/AttachmentModal'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {AuthScreensParamList} from '@libs/Navigation/types'; import * as PersonalDetailsUtils from '@libs/PersonalDetailsUtils'; import * as UserUtils from '@libs/UserUtils'; @@ -19,7 +20,7 @@ type ProfileAvatarOnyxProps = { isLoadingApp: OnyxEntry; }; -type ProfileAvatarProps = ProfileAvatarOnyxProps & StackScreenProps; +type ProfileAvatarProps = ProfileAvatarOnyxProps & PlatformStackScreenProps; function ProfileAvatar({route, personalDetails, personalDetailsMetadata, isLoadingApp = true}: ProfileAvatarProps) { const personalDetail = personalDetails?.[route.params.accountID]; @@ -41,7 +42,9 @@ function ProfileAvatar({route, personalDetails, personalDetailsMetadata, isLoadi defaultOpen source={UserUtils.getFullSizeAvatar(avatarURL, accountID)} onModalClose={() => { - Navigation.goBack(); + InteractionManager.runAfterInteractions(() => { + Navigation.goBack(); + }); }} originalFileName={personalDetail?.originalFileName ?? ''} isLoading={!!isLoading} diff --git a/src/pages/settings/Report/NamePage.tsx b/src/pages/settings/Report/NamePage.tsx index de73e59bb7da..f8ee44ccaa5f 100644 --- a/src/pages/settings/Report/NamePage.tsx +++ b/src/pages/settings/Report/NamePage.tsx @@ -1,5 +1,5 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as ReportUtils from '@libs/ReportUtils'; import type {ReportSettingsNavigatorParamList} from '@navigation/types'; import GroupChatNameEditPage from '@pages/GroupChatNameEditPage'; @@ -8,7 +8,7 @@ import type {WithReportOrNotFoundProps} from '@pages/home/report/withReportOrNot import type SCREENS from '@src/SCREENS'; import RoomNamePage from './RoomNamePage'; -type NamePageProps = WithReportOrNotFoundProps & StackScreenProps; +type NamePageProps = WithReportOrNotFoundProps & PlatformStackScreenProps; function NamePage({report}: NamePageProps) { if (ReportUtils.isGroupChat(report)) { diff --git a/src/pages/settings/Report/NotificationPreferencePage.tsx b/src/pages/settings/Report/NotificationPreferencePage.tsx index 416d710d4966..50d445015f45 100644 --- a/src/pages/settings/Report/NotificationPreferencePage.tsx +++ b/src/pages/settings/Report/NotificationPreferencePage.tsx @@ -1,6 +1,4 @@ -import type {RouteProp} from '@react-navigation/native'; import {useRoute} from '@react-navigation/native'; -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback} from 'react'; import {useOnyx} from 'react-native-onyx'; import type {ValueOf} from 'type-fest'; @@ -10,6 +8,7 @@ import ScreenWrapper from '@components/ScreenWrapper'; import SelectionList from '@components/SelectionList'; import RadioListItem from '@components/SelectionList/RadioListItem'; import useLocalize from '@hooks/useLocalize'; +import type {PlatformStackRouteProp, PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as ReportUtils from '@libs/ReportUtils'; import type {ReportSettingsNavigatorParamList} from '@navigation/types'; import withReportOrNotFound from '@pages/home/report/withReportOrNotFound'; @@ -19,10 +18,10 @@ import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; import type SCREENS from '@src/SCREENS'; -type NotificationPreferencePageProps = WithReportOrNotFoundProps & StackScreenProps; +type NotificationPreferencePageProps = WithReportOrNotFoundProps & PlatformStackScreenProps; function NotificationPreferencePage({report}: NotificationPreferencePageProps) { - const route = useRoute>(); + const route = useRoute>(); const {translate} = useLocalize(); const [reportNameValuePairs] = useOnyx(`${ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS}${report.reportID || -1}`); const isMoneyRequestReport = ReportUtils.isMoneyRequestReport(report); diff --git a/src/pages/settings/Report/ReportSettingsPage.tsx b/src/pages/settings/Report/ReportSettingsPage.tsx index c407788dce65..e943bc7b84a1 100644 --- a/src/pages/settings/Report/ReportSettingsPage.tsx +++ b/src/pages/settings/Report/ReportSettingsPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useMemo} from 'react'; import {View} from 'react-native'; import {useOnyx} from 'react-native-onyx'; @@ -11,6 +10,7 @@ import Text from '@components/Text'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as ReportUtils from '@libs/ReportUtils'; import type {ReportSettingsNavigatorParamList} from '@navigation/types'; import withReportOrNotFound from '@pages/home/report/withReportOrNotFound'; @@ -21,7 +21,7 @@ import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; import {isEmptyObject} from '@src/types/utils/EmptyObject'; -type ReportSettingsPageProps = WithReportOrNotFoundProps & StackScreenProps; +type ReportSettingsPageProps = WithReportOrNotFoundProps & PlatformStackScreenProps; function ReportSettingsPage({report, policies, route}: ReportSettingsPageProps) { const backTo = route.params.backTo; diff --git a/src/pages/settings/Report/RoomNamePage.tsx b/src/pages/settings/Report/RoomNamePage.tsx index a497d793f465..ac23f455c635 100644 --- a/src/pages/settings/Report/RoomNamePage.tsx +++ b/src/pages/settings/Report/RoomNamePage.tsx @@ -1,4 +1,3 @@ -import type {RouteProp} from '@react-navigation/native'; import {useIsFocused, useRoute} from '@react-navigation/native'; import React, {useCallback, useRef} from 'react'; import {View} from 'react-native'; @@ -16,6 +15,7 @@ import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import * as ErrorUtils from '@libs/ErrorUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types'; import type {ReportSettingsNavigatorParamList} from '@libs/Navigation/types'; import * as ReportUtils from '@libs/ReportUtils'; import * as ValidationUtils from '@libs/ValidationUtils'; @@ -37,7 +37,7 @@ type RoomNamePageProps = RoomNamePageOnyxProps & { }; function RoomNamePage({report, reports}: RoomNamePageProps) { - const route = useRoute>(); + const route = useRoute>(); const styles = useThemeStyles(); const roomNameInputRef = useRef(null); const isFocused = useIsFocused(); diff --git a/src/pages/settings/Report/VisibilityPage.tsx b/src/pages/settings/Report/VisibilityPage.tsx index 07c05d1b8de1..a1ddc3d5fe48 100644 --- a/src/pages/settings/Report/VisibilityPage.tsx +++ b/src/pages/settings/Report/VisibilityPage.tsx @@ -1,6 +1,4 @@ -import type {RouteProp} from '@react-navigation/native'; import {useRoute} from '@react-navigation/native'; -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useMemo, useRef, useState} from 'react'; import {useOnyx} from 'react-native-onyx'; import FullPageNotFoundView from '@components/BlockingViews/FullPageNotFoundView'; @@ -10,6 +8,7 @@ import ScreenWrapper from '@components/ScreenWrapper'; import SelectionList from '@components/SelectionList'; import RadioListItem from '@components/SelectionList/RadioListItem'; import useLocalize from '@hooks/useLocalize'; +import type {PlatformStackRouteProp, PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {ReportSettingsNavigatorParamList} from '@libs/Navigation/types'; import * as ReportUtils from '@libs/ReportUtils'; import type {WithReportOrNotFoundProps} from '@pages/home/report/withReportOrNotFound'; @@ -20,10 +19,10 @@ import ONYXKEYS from '@src/ONYXKEYS'; import type SCREENS from '@src/SCREENS'; import type {RoomVisibility} from '@src/types/onyx/Report'; -type VisibilityProps = WithReportOrNotFoundProps & StackScreenProps; +type VisibilityProps = WithReportOrNotFoundProps & PlatformStackScreenProps; function VisibilityPage({report}: VisibilityProps) { - const route = useRoute>(); + const route = useRoute>(); const [showConfirmModal, setShowConfirmModal] = useState(false); const [reportNameValuePairs] = useOnyx(`${ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS}${report?.reportID || -1}`); const shouldGoBackToDetailsPage = useRef(false); diff --git a/src/pages/settings/Report/WriteCapabilityPage.tsx b/src/pages/settings/Report/WriteCapabilityPage.tsx index 888c15295dc2..2f6fb9b485a7 100644 --- a/src/pages/settings/Report/WriteCapabilityPage.tsx +++ b/src/pages/settings/Report/WriteCapabilityPage.tsx @@ -1,6 +1,4 @@ -import type {RouteProp} from '@react-navigation/native'; import {useRoute} from '@react-navigation/native'; -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback} from 'react'; import {withOnyx} from 'react-native-onyx'; import type {OnyxEntry} from 'react-native-onyx'; @@ -12,6 +10,7 @@ import SelectionList from '@components/SelectionList'; import RadioListItem from '@components/SelectionList/RadioListItem'; import useLocalize from '@hooks/useLocalize'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackRouteProp, PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as ReportUtils from '@libs/ReportUtils'; import type {ReportSettingsNavigatorParamList} from '@navigation/types'; import withReportOrNotFound from '@pages/home/report/withReportOrNotFound'; @@ -30,10 +29,10 @@ type WriteCapabilityPageOnyxProps = { type WriteCapabilityPageProps = WriteCapabilityPageOnyxProps & WithReportOrNotFoundProps & - StackScreenProps; + PlatformStackScreenProps; function WriteCapabilityPage({report, policy}: WriteCapabilityPageProps) { - const route = useRoute>(); + const route = useRoute>(); const {translate} = useLocalize(); const writeCapabilityOptions = Object.values(CONST.REPORT.WRITE_CAPABILITIES).map((value) => ({ value, diff --git a/src/pages/settings/Security/AddDelegate/ConfirmDelegatePage.tsx b/src/pages/settings/Security/AddDelegate/ConfirmDelegatePage.tsx index 2c60aef482a8..047d80ee92fa 100644 --- a/src/pages/settings/Security/AddDelegate/ConfirmDelegatePage.tsx +++ b/src/pages/settings/Security/AddDelegate/ConfirmDelegatePage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import type {ValueOf} from 'type-fest'; import Button from '@components/Button'; @@ -13,13 +12,14 @@ import useThemeStyles from '@hooks/useThemeStyles'; import {requestValidationCode} from '@libs/actions/Delegate'; import {formatPhoneNumber} from '@libs/LocalePhoneNumber'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import * as PersonalDetailsUtils from '@libs/PersonalDetailsUtils'; import CONST from '@src/CONST'; import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; -type ConfirmDelegatePageProps = StackScreenProps; +type ConfirmDelegatePageProps = PlatformStackScreenProps; function ConfirmDelegatePage({route}: ConfirmDelegatePageProps) { const {translate} = useLocalize(); diff --git a/src/pages/settings/Security/AddDelegate/DelegateMagicCodePage.tsx b/src/pages/settings/Security/AddDelegate/DelegateMagicCodePage.tsx index 9497507f041a..941cc2992121 100644 --- a/src/pages/settings/Security/AddDelegate/DelegateMagicCodePage.tsx +++ b/src/pages/settings/Security/AddDelegate/DelegateMagicCodePage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useEffect, useRef} from 'react'; import {useOnyx} from 'react-native-onyx'; import type {ValueOf} from 'type-fest'; @@ -8,6 +7,7 @@ import Text from '@components/Text'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import type CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; @@ -16,7 +16,7 @@ import type SCREENS from '@src/SCREENS'; import ValidateCodeForm from './ValidateCodeForm'; import type {ValidateCodeFormHandle} from './ValidateCodeForm/BaseValidateCodeForm'; -type DelegateMagicCodePageProps = StackScreenProps; +type DelegateMagicCodePageProps = PlatformStackScreenProps; function DelegateMagicCodePage({route}: DelegateMagicCodePageProps) { const {translate} = useLocalize(); diff --git a/src/pages/settings/Security/AddDelegate/SelectDelegateRolePage.tsx b/src/pages/settings/Security/AddDelegate/SelectDelegateRolePage.tsx index 4270441775cd..7a52efb6cfd8 100644 --- a/src/pages/settings/Security/AddDelegate/SelectDelegateRolePage.tsx +++ b/src/pages/settings/Security/AddDelegate/SelectDelegateRolePage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import HeaderWithBackButton from '@components/HeaderWithBackButton'; import ScreenWrapper from '@components/ScreenWrapper'; @@ -9,12 +8,13 @@ import TextLink from '@components/TextLink'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import CONST from '@src/CONST'; import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; -type SelectDelegateRolePageProps = StackScreenProps; +type SelectDelegateRolePageProps = PlatformStackScreenProps; function SelectDelegateRolePage({route}: SelectDelegateRolePageProps) { const {translate} = useLocalize(); diff --git a/src/pages/settings/Security/CloseAccountPage.tsx b/src/pages/settings/Security/CloseAccountPage.tsx index 1da4436ca810..214b38ee3620 100644 --- a/src/pages/settings/Security/CloseAccountPage.tsx +++ b/src/pages/settings/Security/CloseAccountPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import {Str} from 'expensify-common'; import React, {useEffect, useState} from 'react'; import {View} from 'react-native'; @@ -15,6 +14,7 @@ import TextInput from '@components/TextInput'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as ValidationUtils from '@libs/ValidationUtils'; import type {SettingsNavigatorParamList} from '@navigation/types'; import variables from '@styles/variables'; @@ -31,7 +31,7 @@ type CloseAccountPageOnyxProps = { session: OnyxEntry; }; -type CloseAccountPageProps = CloseAccountPageOnyxProps & StackScreenProps; +type CloseAccountPageProps = CloseAccountPageOnyxProps & PlatformStackScreenProps; function CloseAccountPage({session}: CloseAccountPageProps) { const styles = useThemeStyles(); diff --git a/src/pages/settings/Security/TwoFactorAuth/Steps/CodesStep.tsx b/src/pages/settings/Security/TwoFactorAuth/Steps/CodesStep.tsx index dd3d3b87a12f..5ae593971f8e 100644 --- a/src/pages/settings/Security/TwoFactorAuth/Steps/CodesStep.tsx +++ b/src/pages/settings/Security/TwoFactorAuth/Steps/CodesStep.tsx @@ -1,4 +1,3 @@ -import type {RouteProp} from '@react-navigation/native'; import {useRoute} from '@react-navigation/native'; import React, {useEffect, useState} from 'react'; import {ActivityIndicator, View} from 'react-native'; @@ -19,6 +18,7 @@ import useTheme from '@hooks/useTheme'; import useThemeStyles from '@hooks/useThemeStyles'; import Clipboard from '@libs/Clipboard'; import localFileDownload from '@libs/localFileDownload'; +import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types'; import type {BackToParams, SettingsNavigatorParamList} from '@libs/Navigation/types'; import StepWrapper from '@pages/settings/Security/TwoFactorAuth/StepWrapper/StepWrapper'; import useTwoFactorAuthContext from '@pages/settings/Security/TwoFactorAuth/TwoFactorAuthContext/useTwoFactorAuth'; @@ -39,7 +39,7 @@ function CodesStep({account, user, backTo}: CodesStepProps) { const {isExtraSmallScreenWidth, isSmallScreenWidth} = useResponsiveLayout(); const [error, setError] = useState(''); const isUserValidated = user?.validated; - const route = useRoute>(); + const route = useRoute>(); const {setStep} = useTwoFactorAuthContext(); diff --git a/src/pages/settings/Security/TwoFactorAuth/TwoFactorAuthSteps.tsx b/src/pages/settings/Security/TwoFactorAuth/TwoFactorAuthSteps.tsx index c49b88c2ac0e..9c70371e76a3 100644 --- a/src/pages/settings/Security/TwoFactorAuth/TwoFactorAuthSteps.tsx +++ b/src/pages/settings/Security/TwoFactorAuth/TwoFactorAuthSteps.tsx @@ -1,9 +1,9 @@ import {useRoute} from '@react-navigation/native'; -import type {RouteProp} from '@react-navigation/native'; import React, {useCallback, useEffect, useMemo} from 'react'; import {withOnyx} from 'react-native-onyx'; import type {AnimationDirection} from '@components/AnimatedStep/AnimatedStepContext'; import useAnimatedStepContext from '@components/AnimatedStep/useAnimatedStepContext'; +import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import * as TwoFactorAuthActions from '@userActions/TwoFactorAuthActions'; import CONST from '@src/CONST'; @@ -22,7 +22,7 @@ import type {BaseTwoFactorAuthFormOnyxProps} from './TwoFactorAuthForm/types'; type TwoFactorAuthStepProps = BaseTwoFactorAuthFormOnyxProps; function TwoFactorAuthSteps({account}: TwoFactorAuthStepProps) { - const route = useRoute>(); + const route = useRoute>(); const backTo = route.params?.backTo ?? ''; const forwardTo = route.params?.forwardTo ?? ''; diff --git a/src/pages/settings/Subscription/SubscriptionSize/index.tsx b/src/pages/settings/Subscription/SubscriptionSize/index.tsx index 84cd86c60bca..94c6fd5dffd8 100644 --- a/src/pages/settings/Subscription/SubscriptionSize/index.tsx +++ b/src/pages/settings/Subscription/SubscriptionSize/index.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useEffect} from 'react'; import {useOnyx} from 'react-native-onyx'; import HeaderWithBackButton from '@components/HeaderWithBackButton'; @@ -7,6 +6,7 @@ import useLocalize from '@hooks/useLocalize'; import useSubStep from '@hooks/useSubStep'; import type {SubStepProps} from '@hooks/useSubStep/types'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@navigation/types'; import * as FormActions from '@userActions/FormActions'; import * as Subscription from '@userActions/Subscription'; @@ -18,7 +18,7 @@ import Size from './substeps/Size'; const bodyContent: Array> = [Size, Confirmation]; -type SubscriptionSizePageProps = StackScreenProps; +type SubscriptionSizePageProps = PlatformStackScreenProps; function SubscriptionSizePage({route}: SubscriptionSizePageProps) { const [privateSubscription] = useOnyx(ONYXKEYS.NVP_PRIVATE_SUBSCRIPTION); diff --git a/src/pages/settings/Wallet/ActivatePhysicalCardPage.tsx b/src/pages/settings/Wallet/ActivatePhysicalCardPage.tsx index 23b694fe0d40..bdc8928f362b 100644 --- a/src/pages/settings/Wallet/ActivatePhysicalCardPage.tsx +++ b/src/pages/settings/Wallet/ActivatePhysicalCardPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useEffect, useRef, useState} from 'react'; import {View} from 'react-native'; import type {OnyxEntry} from 'react-native-onyx'; @@ -18,6 +17,7 @@ import useThemeStyles from '@hooks/useThemeStyles'; import * as DeviceCapabilities from '@libs/DeviceCapabilities'; import * as ErrorUtils from '@libs/ErrorUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import NotFoundPage from '@pages/ErrorPage/NotFoundPage'; import * as CardSettings from '@userActions/Card'; @@ -33,7 +33,7 @@ type ActivatePhysicalCardPageOnyxProps = { cardList: OnyxEntry>; }; -type ActivatePhysicalCardPageProps = ActivatePhysicalCardPageOnyxProps & StackScreenProps; +type ActivatePhysicalCardPageProps = ActivatePhysicalCardPageOnyxProps & PlatformStackScreenProps; const LAST_FOUR_DIGITS_LENGTH = 4; const MAGIC_INPUT_MIN_HEIGHT = 86; diff --git a/src/pages/settings/Wallet/Card/GetPhysicalCardAddress.tsx b/src/pages/settings/Wallet/Card/GetPhysicalCardAddress.tsx index 69ba24585e2e..ef85b09ac2a6 100644 --- a/src/pages/settings/Wallet/Card/GetPhysicalCardAddress.tsx +++ b/src/pages/settings/Wallet/Card/GetPhysicalCardAddress.tsx @@ -1,10 +1,10 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useEffect, useState} from 'react'; import {withOnyx} from 'react-native-onyx'; import type {OnyxEntry} from 'react-native-onyx'; import AddressForm from '@components/AddressForm'; import useLocalize from '@hooks/useLocalize'; import * as FormActions from '@libs/actions/FormActions'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@navigation/types'; import type {Country} from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; @@ -21,7 +21,7 @@ type GetPhysicalCardAddressOnyxProps = { draftValues: OnyxEntry; }; -type GetPhysicalCardAddressProps = GetPhysicalCardAddressOnyxProps & StackScreenProps; +type GetPhysicalCardAddressProps = GetPhysicalCardAddressOnyxProps & PlatformStackScreenProps; function GetPhysicalCardAddress({ draftValues, diff --git a/src/pages/settings/Wallet/Card/GetPhysicalCardConfirm.tsx b/src/pages/settings/Wallet/Card/GetPhysicalCardConfirm.tsx index 15354c3cdfb8..1023064c0d39 100644 --- a/src/pages/settings/Wallet/Card/GetPhysicalCardConfirm.tsx +++ b/src/pages/settings/Wallet/Card/GetPhysicalCardConfirm.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import {withOnyx} from 'react-native-onyx'; import type {OnyxEntry} from 'react-native-onyx'; @@ -8,6 +7,7 @@ import Text from '@components/Text'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as PersonalDetailsUtils from '@libs/PersonalDetailsUtils'; import type {SettingsNavigatorParamList} from '@navigation/types'; import CONST from '@src/CONST'; @@ -34,7 +34,7 @@ type GetPhysicalCardConfirmOnyxProps = { draftValues: OnyxEntry; }; -type GetPhysicalCardConfirmProps = GetPhysicalCardConfirmOnyxProps & StackScreenProps; +type GetPhysicalCardConfirmProps = GetPhysicalCardConfirmOnyxProps & PlatformStackScreenProps; function GetPhysicalCardConfirm({ draftValues, diff --git a/src/pages/settings/Wallet/Card/GetPhysicalCardName.tsx b/src/pages/settings/Wallet/Card/GetPhysicalCardName.tsx index deaa05350c7f..0a804d1df470 100644 --- a/src/pages/settings/Wallet/Card/GetPhysicalCardName.tsx +++ b/src/pages/settings/Wallet/Card/GetPhysicalCardName.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import {withOnyx} from 'react-native-onyx'; import type {OnyxEntry} from 'react-native-onyx'; @@ -6,6 +5,7 @@ import InputWrapper from '@components/Form/InputWrapper'; import TextInput from '@components/TextInput'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as ValidationUtils from '@libs/ValidationUtils'; import type {SettingsNavigatorParamList} from '@navigation/types'; import CONST from '@src/CONST'; @@ -26,7 +26,7 @@ type GetPhysicalCardNameOnyxProps = { draftValues: OnyxEntry; }; -type GetPhysicalCardNameProps = GetPhysicalCardNameOnyxProps & StackScreenProps; +type GetPhysicalCardNameProps = GetPhysicalCardNameOnyxProps & PlatformStackScreenProps; function GetPhysicalCardName({ draftValues, diff --git a/src/pages/settings/Wallet/Card/GetPhysicalCardPhone.tsx b/src/pages/settings/Wallet/Card/GetPhysicalCardPhone.tsx index 56d5a29a3203..c7676db26067 100644 --- a/src/pages/settings/Wallet/Card/GetPhysicalCardPhone.tsx +++ b/src/pages/settings/Wallet/Card/GetPhysicalCardPhone.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import {withOnyx} from 'react-native-onyx'; import type {OnyxEntry} from 'react-native-onyx'; @@ -6,6 +5,7 @@ import InputWrapper from '@components/Form/InputWrapper'; import TextInput from '@components/TextInput'; import useLocalize from '@hooks/useLocalize'; import * as LoginUtils from '@libs/LoginUtils'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@navigation/types'; import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; @@ -24,7 +24,7 @@ type GetPhysicalCardPhoneOnyxProps = { draftValues: OnyxEntry; }; -type GetPhysicalCardPhoneProps = GetPhysicalCardPhoneOnyxProps & StackScreenProps; +type GetPhysicalCardPhoneProps = GetPhysicalCardPhoneOnyxProps & PlatformStackScreenProps; function GetPhysicalCardPhone({ route: { diff --git a/src/pages/settings/Wallet/ExpensifyCardPage.tsx b/src/pages/settings/Wallet/ExpensifyCardPage.tsx index 1146f876860e..89c3cd668622 100644 --- a/src/pages/settings/Wallet/ExpensifyCardPage.tsx +++ b/src/pages/settings/Wallet/ExpensifyCardPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useEffect, useMemo, useState} from 'react'; import {View} from 'react-native'; import type {OnyxEntry} from 'react-native-onyx'; @@ -22,6 +21,7 @@ import * as CardUtils from '@libs/CardUtils'; import * as CurrencyUtils from '@libs/CurrencyUtils'; import * as GetPhysicalCardUtils from '@libs/GetPhysicalCardUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import NotFoundPage from '@pages/ErrorPage/NotFoundPage'; import * as Card from '@userActions/Card'; @@ -51,7 +51,7 @@ type ExpensifyCardPageOnyxProps = { loginList: OnyxEntry; }; -type ExpensifyCardPageProps = ExpensifyCardPageOnyxProps & StackScreenProps; +type ExpensifyCardPageProps = ExpensifyCardPageOnyxProps & PlatformStackScreenProps; type PossibleTitles = 'cardPage.smartLimit.title' | 'cardPage.monthlyLimit.title' | 'cardPage.fixedLimit.title'; diff --git a/src/pages/settings/Wallet/ReportCardLostPage.tsx b/src/pages/settings/Wallet/ReportCardLostPage.tsx index 35b5bc9cd19a..5850be921b23 100644 --- a/src/pages/settings/Wallet/ReportCardLostPage.tsx +++ b/src/pages/settings/Wallet/ReportCardLostPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useEffect, useState} from 'react'; import {View} from 'react-native'; import type {OnyxEntry} from 'react-native-onyx'; @@ -14,6 +13,7 @@ import usePrevious from '@hooks/usePrevious'; import useStyledSafeAreaInsets from '@hooks/useStyledSafeAreaInsets'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import * as PersonalDetailsUtils from '@libs/PersonalDetailsUtils'; import NotFoundPage from '@pages/ErrorPage/NotFoundPage'; @@ -61,7 +61,7 @@ type ReportCardLostPageOnyxProps = { cardList: OnyxEntry>; }; -type ReportCardLostPageProps = ReportCardLostPageOnyxProps & StackScreenProps; +type ReportCardLostPageProps = ReportCardLostPageOnyxProps & PlatformStackScreenProps; function ReportCardLostPage({ privatePersonalDetails = { diff --git a/src/pages/settings/Wallet/ReportVirtualCardFraudPage.tsx b/src/pages/settings/Wallet/ReportVirtualCardFraudPage.tsx index 22761c40da9c..b190a55ebd1c 100644 --- a/src/pages/settings/Wallet/ReportVirtualCardFraudPage.tsx +++ b/src/pages/settings/Wallet/ReportVirtualCardFraudPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useEffect} from 'react'; import {View} from 'react-native'; import type {OnyxEntry} from 'react-native-onyx'; @@ -12,6 +11,7 @@ import usePrevious from '@hooks/usePrevious'; import useThemeStyles from '@hooks/useThemeStyles'; import * as ErrorUtils from '@libs/ErrorUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import NotFoundPage from '@pages/ErrorPage/NotFoundPage'; import * as Card from '@userActions/Card'; @@ -30,7 +30,7 @@ type ReportVirtualCardFraudPageOnyxProps = { cardList: OnyxEntry>; }; -type ReportVirtualCardFraudPageProps = ReportVirtualCardFraudPageOnyxProps & StackScreenProps; +type ReportVirtualCardFraudPageProps = ReportVirtualCardFraudPageOnyxProps & PlatformStackScreenProps; function ReportVirtualCardFraudPage({ route: { diff --git a/src/pages/settings/Wallet/VerifyAccountPage.tsx b/src/pages/settings/Wallet/VerifyAccountPage.tsx index e375f03ba58c..0e8d48f05854 100644 --- a/src/pages/settings/Wallet/VerifyAccountPage.tsx +++ b/src/pages/settings/Wallet/VerifyAccountPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useEffect, useRef} from 'react'; import {View} from 'react-native'; import {useOnyx} from 'react-native-onyx'; @@ -12,13 +11,14 @@ import useSafePaddingBottomStyle from '@hooks/useSafePaddingBottomStyle'; import useThemeStyles from '@hooks/useThemeStyles'; import * as ErrorUtils from '@libs/ErrorUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import * as User from '@userActions/User'; import ONYXKEYS from '@src/ONYXKEYS'; import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; -type VerifyAccountPageProps = StackScreenProps; +type VerifyAccountPageProps = PlatformStackScreenProps; function VerifyAccountPage({route}: VerifyAccountPageProps) { const [account] = useOnyx(ONYXKEYS.ACCOUNT); diff --git a/src/pages/tasks/NewTaskDescriptionPage.tsx b/src/pages/tasks/NewTaskDescriptionPage.tsx index 0132442b5978..fb7e7b9f4617 100644 --- a/src/pages/tasks/NewTaskDescriptionPage.tsx +++ b/src/pages/tasks/NewTaskDescriptionPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import {View} from 'react-native'; import {withOnyx} from 'react-native-onyx'; @@ -14,6 +13,7 @@ import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import * as ErrorUtils from '@libs/ErrorUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {NewTaskNavigatorParamList} from '@libs/Navigation/types'; import Parser from '@libs/Parser'; import * as ReportUtils from '@libs/ReportUtils'; @@ -32,7 +32,7 @@ type NewTaskDescriptionPageOnyxProps = { task: OnyxEntry; }; -type NewTaskDescriptionPageProps = NewTaskDescriptionPageOnyxProps & StackScreenProps; +type NewTaskDescriptionPageProps = NewTaskDescriptionPageOnyxProps & PlatformStackScreenProps; function NewTaskDescriptionPage({task, route}: NewTaskDescriptionPageProps) { const styles = useThemeStyles(); diff --git a/src/pages/tasks/NewTaskDetailsPage.tsx b/src/pages/tasks/NewTaskDetailsPage.tsx index f0ff4d0fb409..245a3a9893b7 100644 --- a/src/pages/tasks/NewTaskDetailsPage.tsx +++ b/src/pages/tasks/NewTaskDetailsPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useEffect, useState} from 'react'; import {View} from 'react-native'; import {withOnyx} from 'react-native-onyx'; @@ -14,6 +13,7 @@ import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import * as ErrorUtils from '@libs/ErrorUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {NewTaskNavigatorParamList} from '@libs/Navigation/types'; import Parser from '@libs/Parser'; import * as ReportUtils from '@libs/ReportUtils'; @@ -32,7 +32,7 @@ type NewTaskDetailsPageOnyxProps = { task: OnyxEntry; }; -type NewTaskDetailsPageProps = NewTaskDetailsPageOnyxProps & StackScreenProps; +type NewTaskDetailsPageProps = NewTaskDetailsPageOnyxProps & PlatformStackScreenProps; function NewTaskDetailsPage({task, route}: NewTaskDetailsPageProps) { const styles = useThemeStyles(); diff --git a/src/pages/tasks/NewTaskPage.tsx b/src/pages/tasks/NewTaskPage.tsx index faf45df8b51d..1ac6c1b31356 100644 --- a/src/pages/tasks/NewTaskPage.tsx +++ b/src/pages/tasks/NewTaskPage.tsx @@ -1,5 +1,4 @@ import {useFocusEffect} from '@react-navigation/native'; -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react'; import {InteractionManager, View} from 'react-native'; import type {OnyxCollection, OnyxEntry} from 'react-native-onyx'; @@ -18,6 +17,7 @@ import useThemeStyles from '@hooks/useThemeStyles'; import blurActiveElement from '@libs/Accessibility/blurActiveElement'; import * as LocalePhoneNumber from '@libs/LocalePhoneNumber'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {NewTaskNavigatorParamList} from '@libs/Navigation/types'; import * as OptionsListUtils from '@libs/OptionsListUtils'; import * as ReportUtils from '@libs/ReportUtils'; @@ -41,7 +41,7 @@ type NewTaskPageOnyxProps = { reports: OnyxCollection; }; -type NewTaskPageProps = NewTaskPageOnyxProps & StackScreenProps; +type NewTaskPageProps = NewTaskPageOnyxProps & PlatformStackScreenProps; function NewTaskPage({task, reports, personalDetails, route}: NewTaskPageProps) { const styles = useThemeStyles(); diff --git a/src/pages/tasks/NewTaskTitlePage.tsx b/src/pages/tasks/NewTaskTitlePage.tsx index 5afd919cac57..55e23f258762 100644 --- a/src/pages/tasks/NewTaskTitlePage.tsx +++ b/src/pages/tasks/NewTaskTitlePage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import {View} from 'react-native'; import {withOnyx} from 'react-native-onyx'; @@ -14,6 +13,7 @@ import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import * as ErrorUtils from '@libs/ErrorUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {NewTaskNavigatorParamList} from '@libs/Navigation/types'; import * as TaskActions from '@userActions/Task'; import CONST from '@src/CONST'; @@ -27,7 +27,7 @@ type NewTaskTitlePageOnyxProps = { /** Task Creation Data */ task: OnyxEntry; }; -type NewTaskTitlePageProps = NewTaskTitlePageOnyxProps & StackScreenProps; +type NewTaskTitlePageProps = NewTaskTitlePageOnyxProps & PlatformStackScreenProps; function NewTaskTitlePage({task, route}: NewTaskTitlePageProps) { const styles = useThemeStyles(); diff --git a/src/pages/tasks/TaskAssigneeSelectorModal.tsx b/src/pages/tasks/TaskAssigneeSelectorModal.tsx index 3f44882e2fd0..00d8ace8b7c4 100644 --- a/src/pages/tasks/TaskAssigneeSelectorModal.tsx +++ b/src/pages/tasks/TaskAssigneeSelectorModal.tsx @@ -1,5 +1,4 @@ /* eslint-disable es/no-optional-chaining */ -import type {RouteProp} from '@react-navigation/native'; import {useRoute} from '@react-navigation/native'; import React, {useCallback, useEffect, useMemo, useState} from 'react'; import {InteractionManager, View} from 'react-native'; @@ -23,6 +22,7 @@ import * as ReportActions from '@libs/actions/Report'; import {READ_COMMANDS} from '@libs/API/types'; import HttpUtils from '@libs/HttpUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types'; import * as OptionsListUtils from '@libs/OptionsListUtils'; import * as ReportUtils from '@libs/ReportUtils'; import type {TaskDetailsNavigatorParamList} from '@navigation/types'; @@ -101,7 +101,7 @@ function useOptions() { function TaskAssigneeSelectorModal() { const styles = useThemeStyles(); - const route = useRoute>(); + const route = useRoute>(); const {translate} = useLocalize(); const session = useSession(); const backTo = route.params?.backTo; diff --git a/src/pages/tasks/TaskDescriptionPage.tsx b/src/pages/tasks/TaskDescriptionPage.tsx index acd1329b26ec..97c5cf7f7e16 100644 --- a/src/pages/tasks/TaskDescriptionPage.tsx +++ b/src/pages/tasks/TaskDescriptionPage.tsx @@ -1,4 +1,3 @@ -import type {RouteProp} from '@react-navigation/native'; import {useFocusEffect, useRoute} from '@react-navigation/native'; import React, {useCallback, useRef} from 'react'; import {View} from 'react-native'; @@ -16,6 +15,7 @@ import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import * as ErrorUtils from '@libs/ErrorUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types'; import type {ReportDescriptionNavigatorParamList} from '@libs/Navigation/types'; import Parser from '@libs/Parser'; import * as ReportUtils from '@libs/ReportUtils'; @@ -33,7 +33,7 @@ import {isEmptyObject} from '@src/types/utils/EmptyObject'; type TaskDescriptionPageProps = WithReportOrNotFoundProps & WithCurrentUserPersonalDetailsProps; function TaskDescriptionPage({report, currentUserPersonalDetails}: TaskDescriptionPageProps) { - const route = useRoute>(); + const route = useRoute>(); const styles = useThemeStyles(); const {translate} = useLocalize(); diff --git a/src/pages/tasks/TaskTitlePage.tsx b/src/pages/tasks/TaskTitlePage.tsx index 900809256c45..e6c429a44674 100644 --- a/src/pages/tasks/TaskTitlePage.tsx +++ b/src/pages/tasks/TaskTitlePage.tsx @@ -1,4 +1,3 @@ -import type {RouteProp} from '@react-navigation/native'; import {useRoute} from '@react-navigation/native'; import React, {useCallback, useRef} from 'react'; import {View} from 'react-native'; @@ -16,6 +15,7 @@ import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import * as ErrorUtils from '@libs/ErrorUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types'; import type {TaskDetailsNavigatorParamList} from '@libs/Navigation/types'; import * as ReportUtils from '@libs/ReportUtils'; import withReportOrNotFound from '@pages/home/report/withReportOrNotFound'; @@ -30,7 +30,7 @@ import {isEmptyObject} from '@src/types/utils/EmptyObject'; type TaskTitlePageProps = WithReportOrNotFoundProps & WithCurrentUserPersonalDetailsProps; function TaskTitlePage({report, currentUserPersonalDetails}: TaskTitlePageProps) { - const route = useRoute>(); + const route = useRoute>(); const styles = useThemeStyles(); const {translate} = useLocalize(); diff --git a/src/pages/wallet/WalletStatementPage.tsx b/src/pages/wallet/WalletStatementPage.tsx index 54b601a00350..4319eb09e071 100644 --- a/src/pages/wallet/WalletStatementPage.tsx +++ b/src/pages/wallet/WalletStatementPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import {format, getMonth, getYear} from 'date-fns'; import {Str} from 'expensify-common'; import React, {useEffect} from 'react'; @@ -15,6 +14,7 @@ import DateUtils from '@libs/DateUtils'; import fileDownload from '@libs/fileDownload'; import Growl from '@libs/Growl'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {WalletStatementNavigatorParamList} from '@navigation/types'; import * as User from '@userActions/User'; import CONFIG from '@src/CONFIG'; @@ -27,7 +27,7 @@ type WalletStatementOnyxProps = { walletStatement: OnyxEntry; }; -type WalletStatementPageProps = WalletStatementOnyxProps & StackScreenProps; +type WalletStatementPageProps = WalletStatementOnyxProps & PlatformStackScreenProps; function WalletStatementPage({walletStatement, route}: WalletStatementPageProps) { const themePreference = useThemePreference(); diff --git a/src/pages/workspace/WorkspaceAvatar.tsx b/src/pages/workspace/WorkspaceAvatar.tsx index dfe79feb7755..79fc432a82a8 100644 --- a/src/pages/workspace/WorkspaceAvatar.tsx +++ b/src/pages/workspace/WorkspaceAvatar.tsx @@ -1,9 +1,9 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import type {OnyxEntry} from 'react-native-onyx'; import {withOnyx} from 'react-native-onyx'; import AttachmentModal from '@components/AttachmentModal'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {AuthScreensParamList} from '@libs/Navigation/types'; import * as ReportUtils from '@libs/ReportUtils'; import * as UserUtils from '@libs/UserUtils'; @@ -16,7 +16,7 @@ type WorkspaceAvatarOnyxProps = { isLoadingApp: OnyxEntry; }; -type WorkspaceAvatarProps = WorkspaceAvatarOnyxProps & StackScreenProps; +type WorkspaceAvatarProps = WorkspaceAvatarOnyxProps & PlatformStackScreenProps; function WorkspaceAvatar({policy, isLoadingApp = true}: WorkspaceAvatarProps) { const avatarURL = policy?.avatarURL ?? '' ? policy?.avatarURL ?? '' : ReportUtils.getDefaultWorkspaceAvatar(policy?.name ?? ''); diff --git a/src/pages/workspace/WorkspaceInitialPage.tsx b/src/pages/workspace/WorkspaceInitialPage.tsx index 3b20ccfef360..4222fb4f31f3 100644 --- a/src/pages/workspace/WorkspaceInitialPage.tsx +++ b/src/pages/workspace/WorkspaceInitialPage.tsx @@ -1,5 +1,4 @@ import {useFocusEffect, useNavigationState} from '@react-navigation/native'; -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react'; import {View} from 'react-native'; import {useOnyx} from 'react-native-onyx'; @@ -24,6 +23,7 @@ import {isConnectionInProgress} from '@libs/actions/connections'; import * as CurrencyUtils from '@libs/CurrencyUtils'; import getTopmostRouteName from '@libs/Navigation/getTopmostRouteName'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import {getDefaultWorkspaceAvatar} from '@libs/ReportUtils'; import type {FullScreenNavigatorParamList} from '@navigation/types'; @@ -66,7 +66,7 @@ type WorkspaceMenuItem = { badgeText?: string; }; -type WorkspaceInitialPageProps = WithPolicyAndFullscreenLoadingProps & StackScreenProps; +type WorkspaceInitialPageProps = WithPolicyAndFullscreenLoadingProps & PlatformStackScreenProps; type PolicyFeatureStates = Record; diff --git a/src/pages/workspace/WorkspaceInviteMessagePage.tsx b/src/pages/workspace/WorkspaceInviteMessagePage.tsx index 65776deb7f9a..a79cf537a814 100644 --- a/src/pages/workspace/WorkspaceInviteMessagePage.tsx +++ b/src/pages/workspace/WorkspaceInviteMessagePage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import lodashDebounce from 'lodash/debounce'; import React, {useCallback, useEffect, useMemo, useState} from 'react'; import {Keyboard, View} from 'react-native'; @@ -20,6 +19,7 @@ import useAutoFocusInput from '@hooks/useAutoFocusInput'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as OptionsListUtils from '@libs/OptionsListUtils'; import Parser from '@libs/Parser'; import * as PolicyUtils from '@libs/PolicyUtils'; @@ -41,7 +41,7 @@ import type {WithPolicyAndFullscreenLoadingProps} from './withPolicyAndFullscree type WorkspaceInviteMessagePageProps = WithPolicyAndFullscreenLoadingProps & WithCurrentUserPersonalDetailsProps & - StackScreenProps; + PlatformStackScreenProps; function WorkspaceInviteMessagePage({policy, route, currentUserPersonalDetails}: WorkspaceInviteMessagePageProps) { const styles = useThemeStyles(); diff --git a/src/pages/workspace/WorkspaceInvitePage.tsx b/src/pages/workspace/WorkspaceInvitePage.tsx index ad48d15aa9df..edd7374bf8c3 100644 --- a/src/pages/workspace/WorkspaceInvitePage.tsx +++ b/src/pages/workspace/WorkspaceInvitePage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react'; import type {SectionListData} from 'react-native'; import {useOnyx, withOnyx} from 'react-native-onyx'; @@ -22,6 +21,7 @@ import * as DeviceCapabilities from '@libs/DeviceCapabilities'; import HttpUtils from '@libs/HttpUtils'; import * as LoginUtils from '@libs/LoginUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as OptionsListUtils from '@libs/OptionsListUtils'; import type {MemberForList} from '@libs/OptionsListUtils'; import * as PhoneNumber from '@libs/PhoneNumber'; @@ -54,7 +54,7 @@ type WorkspaceInvitePageOnyxProps = { type WorkspaceInvitePageProps = WithPolicyAndFullscreenLoadingProps & WithNavigationTransitionEndProps & WorkspaceInvitePageOnyxProps & - StackScreenProps; + PlatformStackScreenProps; function WorkspaceInvitePage({route, betas, invitedEmailsToAccountIDsDraft, policy}: WorkspaceInvitePageProps) { const styles = useThemeStyles(); diff --git a/src/pages/workspace/WorkspaceJoinUserPage.tsx b/src/pages/workspace/WorkspaceJoinUserPage.tsx index d73dab51c4fe..cf1225d89fbf 100644 --- a/src/pages/workspace/WorkspaceJoinUserPage.tsx +++ b/src/pages/workspace/WorkspaceJoinUserPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useEffect, useRef} from 'react'; import {withOnyx} from 'react-native-onyx'; import type {OnyxEntry} from 'react-native-onyx'; @@ -6,6 +5,7 @@ import FullScreenLoadingIndicator from '@components/FullscreenLoadingIndicator'; import ScreenWrapper from '@components/ScreenWrapper'; import useThemeStyles from '@hooks/useThemeStyles'; import navigateAfterJoinRequest from '@libs/navigateAfterJoinRequest'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import Navigation from '@navigation/Navigation'; import type {AuthScreensParamList} from '@navigation/types'; @@ -21,7 +21,7 @@ type WorkspaceJoinUserPageOnyxProps = { policy: OnyxEntry; }; -type WorkspaceJoinUserPageRoute = {route: StackScreenProps['route']}; +type WorkspaceJoinUserPageRoute = {route: PlatformStackScreenProps['route']}; type WorkspaceJoinUserPageProps = WorkspaceJoinUserPageRoute & WorkspaceJoinUserPageOnyxProps; let isJoinLinkUsed = false; diff --git a/src/pages/workspace/WorkspaceMembersPage.tsx b/src/pages/workspace/WorkspaceMembersPage.tsx index 52b8a06ba931..160e34160257 100644 --- a/src/pages/workspace/WorkspaceMembersPage.tsx +++ b/src/pages/workspace/WorkspaceMembersPage.tsx @@ -1,5 +1,4 @@ import {useIsFocused} from '@react-navigation/native'; -import type {StackScreenProps} from '@react-navigation/stack'; import lodashIsEqual from 'lodash/isEqual'; import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react'; import type {TextInput} from 'react-native'; @@ -34,6 +33,7 @@ import {turnOffMobileSelectionMode} from '@libs/actions/MobileSelectionMode'; import * as DeviceCapabilities from '@libs/DeviceCapabilities'; import Log from '@libs/Log'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {FullScreenNavigatorParamList} from '@libs/Navigation/types'; import * as OptionsListUtils from '@libs/OptionsListUtils'; import * as PersonalDetailsUtils from '@libs/PersonalDetailsUtils'; @@ -53,7 +53,9 @@ import type {WithPolicyAndFullscreenLoadingProps} from './withPolicyAndFullscree import withPolicyAndFullscreenLoading from './withPolicyAndFullscreenLoading'; import WorkspacePageWithSections from './WorkspacePageWithSections'; -type WorkspaceMembersPageProps = WithPolicyAndFullscreenLoadingProps & WithCurrentUserPersonalDetailsProps & StackScreenProps; +type WorkspaceMembersPageProps = WithPolicyAndFullscreenLoadingProps & + WithCurrentUserPersonalDetailsProps & + PlatformStackScreenProps; /** * Inverts an object, equivalent of _.invert diff --git a/src/pages/workspace/WorkspaceMoreFeaturesPage.tsx b/src/pages/workspace/WorkspaceMoreFeaturesPage.tsx index a743140278f7..2c7a81c9972e 100644 --- a/src/pages/workspace/WorkspaceMoreFeaturesPage.tsx +++ b/src/pages/workspace/WorkspaceMoreFeaturesPage.tsx @@ -1,5 +1,4 @@ import {useFocusEffect} from '@react-navigation/native'; -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useState} from 'react'; import {View} from 'react-native'; import {useOnyx} from 'react-native-onyx'; @@ -17,6 +16,7 @@ import useResponsiveLayout from '@hooks/useResponsiveLayout'; import useThemeStyles from '@hooks/useThemeStyles'; import * as ErrorUtils from '@libs/ErrorUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {FullScreenNavigatorParamList} from '@libs/Navigation/types'; import {isControlPolicy} from '@libs/PolicyUtils'; import * as Category from '@userActions/Policy/Category'; @@ -37,7 +37,7 @@ import type {WithPolicyAndFullscreenLoadingProps} from './withPolicyAndFullscree import withPolicyAndFullscreenLoading from './withPolicyAndFullscreenLoading'; import ToggleSettingOptionRow from './workflows/ToggleSettingsOptionRow'; -type WorkspaceMoreFeaturesPageProps = WithPolicyAndFullscreenLoadingProps & StackScreenProps; +type WorkspaceMoreFeaturesPageProps = WithPolicyAndFullscreenLoadingProps & PlatformStackScreenProps; type Item = { icon: IconAsset; diff --git a/src/pages/workspace/WorkspaceProfileAddressPage.tsx b/src/pages/workspace/WorkspaceProfileAddressPage.tsx index 321471db4c69..57f55e468b1f 100644 --- a/src/pages/workspace/WorkspaceProfileAddressPage.tsx +++ b/src/pages/workspace/WorkspaceProfileAddressPage.tsx @@ -1,8 +1,8 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useMemo} from 'react'; import type {FormOnyxValues} from '@components/Form/types'; import useLocalize from '@hooks/useLocalize'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import AddressPage from '@pages/AddressPage'; import {updateAddress} from '@userActions/Policy/Policy'; @@ -14,7 +14,7 @@ import withPolicy from './withPolicy'; type WorkspaceProfileAddressPagePolicyProps = WithPolicyProps; -type WorkspaceProfileAddressPageProps = StackScreenProps & WorkspaceProfileAddressPagePolicyProps; +type WorkspaceProfileAddressPageProps = PlatformStackScreenProps & WorkspaceProfileAddressPagePolicyProps; function WorkspaceProfileAddressPage({policy, route}: WorkspaceProfileAddressPageProps) { const {translate} = useLocalize(); diff --git a/src/pages/workspace/WorkspaceProfilePage.tsx b/src/pages/workspace/WorkspaceProfilePage.tsx index cbd43fd17529..7289e86f9fcf 100644 --- a/src/pages/workspace/WorkspaceProfilePage.tsx +++ b/src/pages/workspace/WorkspaceProfilePage.tsx @@ -1,5 +1,4 @@ import {useFocusEffect} from '@react-navigation/native'; -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useState} from 'react'; import type {ImageStyle, StyleProp} from 'react-native'; import {Image, StyleSheet, View} from 'react-native'; @@ -23,6 +22,7 @@ import useThemeIllustrations from '@hooks/useThemeIllustrations'; import useThemeStyles from '@hooks/useThemeStyles'; import * as ErrorUtils from '@libs/ErrorUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {FullScreenNavigatorParamList} from '@libs/Navigation/types'; import Parser from '@libs/Parser'; import * as PolicyUtils from '@libs/PolicyUtils'; @@ -45,7 +45,7 @@ type WorkspaceProfilePageOnyxProps = { currencyList: OnyxEntry; }; -type WorkspaceProfilePageProps = WithPolicyProps & WorkspaceProfilePageOnyxProps & StackScreenProps; +type WorkspaceProfilePageProps = WithPolicyProps & WorkspaceProfilePageOnyxProps & PlatformStackScreenProps; function WorkspaceProfilePage({policyDraft, policy: policyProp, currencyList = {}, route}: WorkspaceProfilePageProps) { const styles = useThemeStyles(); diff --git a/src/pages/workspace/accounting/intacct/EnterSageIntacctCredentialsPage.tsx b/src/pages/workspace/accounting/intacct/EnterSageIntacctCredentialsPage.tsx index 9814e5cef996..d7eee7648a69 100644 --- a/src/pages/workspace/accounting/intacct/EnterSageIntacctCredentialsPage.tsx +++ b/src/pages/workspace/accounting/intacct/EnterSageIntacctCredentialsPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback} from 'react'; import {View} from 'react-native'; import FormProvider from '@components/Form/FormProvider'; @@ -13,13 +12,14 @@ import useThemeStyles from '@hooks/useThemeStyles'; import {connectToSageIntacct} from '@libs/actions/connections/SageIntacct'; import * as ErrorUtils from '@libs/ErrorUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; import type SCREENS from '@src/SCREENS'; import INPUT_IDS from '@src/types/form/SageIntactCredentialsForm'; -type SageIntacctPrerequisitesPageProps = StackScreenProps; +type SageIntacctPrerequisitesPageProps = PlatformStackScreenProps; function EnterSageIntacctCredentialsPage({route}: SageIntacctPrerequisitesPageProps) { const styles = useThemeStyles(); diff --git a/src/pages/workspace/accounting/intacct/ExistingConnectionsPage.tsx b/src/pages/workspace/accounting/intacct/ExistingConnectionsPage.tsx index a034699454ed..9829fc569f53 100644 --- a/src/pages/workspace/accounting/intacct/ExistingConnectionsPage.tsx +++ b/src/pages/workspace/accounting/intacct/ExistingConnectionsPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import {View} from 'react-native'; import HeaderWithBackButton from '@components/HeaderWithBackButton'; @@ -9,12 +8,13 @@ import useThemeStyles from '@hooks/useThemeStyles'; import {copyExistingPolicyConnection} from '@libs/actions/connections'; import {getAdminPoliciesConnectedToSageIntacct} from '@libs/actions/Policy/Policy'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import * as ReportUtils from '@libs/ReportUtils'; import CONST from '@src/CONST'; import type SCREENS from '@src/SCREENS'; -type ExistingConnectionsPageProps = StackScreenProps; +type ExistingConnectionsPageProps = PlatformStackScreenProps; function ExistingConnectionsPage({route}: ExistingConnectionsPageProps) { const {translate, datetimeToRelative} = useLocalize(); diff --git a/src/pages/workspace/accounting/intacct/SageIntacctPrerequisitesPage.tsx b/src/pages/workspace/accounting/intacct/SageIntacctPrerequisitesPage.tsx index 1c60065a08c8..56f11640ea7c 100644 --- a/src/pages/workspace/accounting/intacct/SageIntacctPrerequisitesPage.tsx +++ b/src/pages/workspace/accounting/intacct/SageIntacctPrerequisitesPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useMemo, useRef} from 'react'; import {View} from 'react-native'; // eslint-disable-next-line no-restricted-imports @@ -16,6 +15,7 @@ import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import fileDownload from '@libs/fileDownload'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import * as ReportActionContextMenu from '@pages/home/report/ContextMenu/ReportActionContextMenu'; import * as Link from '@userActions/Link'; @@ -23,7 +23,7 @@ import CONST from '@src/CONST'; import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; -type SageIntacctPrerequisitesPageProps = StackScreenProps; +type SageIntacctPrerequisitesPageProps = PlatformStackScreenProps; function SageIntacctPrerequisitesPage({route}: SageIntacctPrerequisitesPageProps) { const {translate} = useLocalize(); diff --git a/src/pages/workspace/accounting/intacct/export/SageIntacctDefaultVendorPage.tsx b/src/pages/workspace/accounting/intacct/export/SageIntacctDefaultVendorPage.tsx index 213f561fb4e9..4ca7d5d349ec 100644 --- a/src/pages/workspace/accounting/intacct/export/SageIntacctDefaultVendorPage.tsx +++ b/src/pages/workspace/accounting/intacct/export/SageIntacctDefaultVendorPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useMemo} from 'react'; import {View} from 'react-native'; import BlockingView from '@components/BlockingViews/BlockingView'; @@ -12,6 +11,7 @@ import usePolicy from '@hooks/usePolicy'; import useThemeStyles from '@hooks/useThemeStyles'; import * as ErrorUtils from '@libs/ErrorUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import {getSageIntacctNonReimbursableActiveDefaultVendor, getSageIntacctVendors, settingsPendingAction} from '@libs/PolicyUtils'; import type {SettingsNavigatorParamList} from '@navigation/types'; import variables from '@styles/variables'; @@ -22,7 +22,7 @@ import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; import type {Connections} from '@src/types/onyx/Policy'; -type SageIntacctDefaultVendorPageProps = StackScreenProps; +type SageIntacctDefaultVendorPageProps = PlatformStackScreenProps; function SageIntacctDefaultVendorPage({route}: SageIntacctDefaultVendorPageProps) { const styles = useThemeStyles(); diff --git a/src/pages/workspace/accounting/intacct/import/SageIntacctEditUserDimensionsPage.tsx b/src/pages/workspace/accounting/intacct/import/SageIntacctEditUserDimensionsPage.tsx index cd10e270d7d2..8c92aee4722c 100644 --- a/src/pages/workspace/accounting/intacct/import/SageIntacctEditUserDimensionsPage.tsx +++ b/src/pages/workspace/accounting/intacct/import/SageIntacctEditUserDimensionsPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useState} from 'react'; import {View} from 'react-native'; import ConfirmModal from '@components/ConfirmModal'; @@ -22,6 +21,7 @@ import { } from '@libs/actions/connections/SageIntacct'; import * as ErrorUtils from '@libs/ErrorUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import {settingsPendingAction} from '@libs/PolicyUtils'; import CONST from '@src/CONST'; @@ -31,7 +31,7 @@ import type SCREENS from '@src/SCREENS'; import INPUT_IDS from '@src/types/form/SageIntacctDimensionsForm'; import DimensionTypeSelector from './DimensionTypeSelector'; -type SageIntacctEditUserDimensionsPageProps = StackScreenProps; +type SageIntacctEditUserDimensionsPageProps = PlatformStackScreenProps; function SageIntacctEditUserDimensionsPage({route}: SageIntacctEditUserDimensionsPageProps) { const styles = useThemeStyles(); diff --git a/src/pages/workspace/accounting/intacct/import/SageIntacctMappingsTypePage.tsx b/src/pages/workspace/accounting/intacct/import/SageIntacctMappingsTypePage.tsx index 73f35cc7bfdb..7e181cdb65c6 100644 --- a/src/pages/workspace/accounting/intacct/import/SageIntacctMappingsTypePage.tsx +++ b/src/pages/workspace/accounting/intacct/import/SageIntacctMappingsTypePage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useMemo} from 'react'; import RadioListItem from '@components/SelectionList/RadioListItem'; import SelectionScreen from '@components/SelectionScreen'; @@ -9,6 +8,7 @@ import useThemeStyles from '@hooks/useThemeStyles'; import {updateSageIntacctMappingValue} from '@libs/actions/connections/SageIntacct'; import * as ErrorUtils from '@libs/ErrorUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import {settingsPendingAction} from '@libs/PolicyUtils'; import * as Policy from '@userActions/Policy/Policy'; @@ -17,7 +17,7 @@ import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; import type {SageIntacctMappingName, SageIntacctMappingValue} from '@src/types/onyx/Policy'; -type SageIntacctMappingsTypePageProps = StackScreenProps; +type SageIntacctMappingsTypePageProps = PlatformStackScreenProps; function SageIntacctMappingsTypePage({route}: SageIntacctMappingsTypePageProps) { const {translate} = useLocalize(); diff --git a/src/pages/workspace/accounting/intacct/import/SageIntacctToggleMappingsPage.tsx b/src/pages/workspace/accounting/intacct/import/SageIntacctToggleMappingsPage.tsx index 82757d8d9ae1..af85a65a39c9 100644 --- a/src/pages/workspace/accounting/intacct/import/SageIntacctToggleMappingsPage.tsx +++ b/src/pages/workspace/accounting/intacct/import/SageIntacctToggleMappingsPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import {Str} from 'expensify-common'; import React from 'react'; import ConnectionLayout from '@components/ConnectionLayout'; @@ -11,6 +10,7 @@ import useThemeStyles from '@hooks/useThemeStyles'; import {clearSageIntacctErrorField, updateSageIntacctMappingValue} from '@libs/actions/connections/SageIntacct'; import * as ErrorUtils from '@libs/ErrorUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import {areSettingsInErrorFields, settingsPendingAction} from '@libs/PolicyUtils'; import ToggleSettingOptionRow from '@pages/workspace/workflows/ToggleSettingsOptionRow'; @@ -20,7 +20,7 @@ import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; import type {SageIntacctMappingName, SageIntacctMappingValue} from '@src/types/onyx/Policy'; -type SageIntacctToggleMappingsPageProps = StackScreenProps; +type SageIntacctToggleMappingsPageProps = PlatformStackScreenProps; type DisplayTypeTranslationKeys = { titleKey: TranslationPaths; diff --git a/src/pages/workspace/accounting/netsuite/NetSuiteTokenInput/NetSuiteExistingConnectionsPage.tsx b/src/pages/workspace/accounting/netsuite/NetSuiteTokenInput/NetSuiteExistingConnectionsPage.tsx index a83a5dab716e..77b01ed43689 100644 --- a/src/pages/workspace/accounting/netsuite/NetSuiteTokenInput/NetSuiteExistingConnectionsPage.tsx +++ b/src/pages/workspace/accounting/netsuite/NetSuiteTokenInput/NetSuiteExistingConnectionsPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import {View} from 'react-native'; import ConnectionLayout from '@components/ConnectionLayout'; @@ -8,13 +7,14 @@ import useThemeStyles from '@hooks/useThemeStyles'; import {copyExistingPolicyConnection} from '@libs/actions/connections'; import {getAdminPoliciesConnectedToNetSuite} from '@libs/actions/Policy/Policy'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import * as ReportUtils from '@libs/ReportUtils'; import CONST from '@src/CONST'; import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; -type ExistingConnectionsPageProps = StackScreenProps; +type ExistingConnectionsPageProps = PlatformStackScreenProps; function NetSuiteExistingConnectionsPage({route}: ExistingConnectionsPageProps) { const {translate, datetimeToRelative} = useLocalize(); diff --git a/src/pages/workspace/accounting/reconciliation/CardReconciliationPage.tsx b/src/pages/workspace/accounting/reconciliation/CardReconciliationPage.tsx index c907095c4301..86fc05054cc5 100644 --- a/src/pages/workspace/accounting/reconciliation/CardReconciliationPage.tsx +++ b/src/pages/workspace/accounting/reconciliation/CardReconciliationPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback} from 'react'; import {useOnyx} from 'react-native-onyx'; import HeaderWithBackButton from '@components/HeaderWithBackButton'; @@ -10,6 +9,7 @@ import TextLink from '@components/TextLink'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import * as AccountingUtils from '@libs/AccountingUtils'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import Navigation from '@navigation/Navigation'; import type {SettingsNavigatorParamList} from '@navigation/types'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; @@ -23,7 +23,7 @@ import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; import type {ConnectionName} from '@src/types/onyx/Policy'; -type CardReconciliationPageProps = WithPolicyConnectionsProps & StackScreenProps; +type CardReconciliationPageProps = WithPolicyConnectionsProps & PlatformStackScreenProps; function CardReconciliationPage({policy, route}: CardReconciliationPageProps) { const styles = useThemeStyles(); diff --git a/src/pages/workspace/accounting/reconciliation/ReconciliationAccountSettingsPage.tsx b/src/pages/workspace/accounting/reconciliation/ReconciliationAccountSettingsPage.tsx index f79b7920f77b..e2d6aef05450 100644 --- a/src/pages/workspace/accounting/reconciliation/ReconciliationAccountSettingsPage.tsx +++ b/src/pages/workspace/accounting/reconciliation/ReconciliationAccountSettingsPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useMemo} from 'react'; import {useOnyx} from 'react-native-onyx'; import ConnectionLayout from '@components/ConnectionLayout'; @@ -11,6 +10,7 @@ import useThemeStyles from '@hooks/useThemeStyles'; import * as AccountingUtils from '@libs/AccountingUtils'; import {getLastFourDigits} from '@libs/BankAccountUtils'; import * as CardUtils from '@libs/CardUtils'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import Navigation from '@navigation/Navigation'; import type {SettingsNavigatorParamList} from '@navigation/types'; @@ -21,7 +21,7 @@ import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; import {isEmptyObject} from '@src/types/utils/EmptyObject'; -type ReconciliationAccountSettingsPageProps = StackScreenProps; +type ReconciliationAccountSettingsPageProps = PlatformStackScreenProps; function ReconciliationAccountSettingsPage({route}: ReconciliationAccountSettingsPageProps) { const {policyID, connection} = route.params; diff --git a/src/pages/workspace/accounting/xero/XeroOrganizationConfigurationPage.tsx b/src/pages/workspace/accounting/xero/XeroOrganizationConfigurationPage.tsx index bb49c5212fb2..adcf515719a8 100644 --- a/src/pages/workspace/accounting/xero/XeroOrganizationConfigurationPage.tsx +++ b/src/pages/workspace/accounting/xero/XeroOrganizationConfigurationPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useMemo} from 'react'; import {View} from 'react-native'; import BlockingView from '@components/BlockingViews/BlockingView'; @@ -12,6 +11,7 @@ import useThemeStyles from '@hooks/useThemeStyles'; import * as Xero from '@libs/actions/connections/Xero'; import * as ErrorUtils from '@libs/ErrorUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import {findCurrentXeroOrganization, getXeroTenants} from '@libs/PolicyUtils'; import withPolicy from '@pages/workspace/withPolicy'; @@ -22,7 +22,7 @@ import CONST from '@src/CONST'; import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; -type XeroOrganizationConfigurationPageProps = WithPolicyProps & StackScreenProps; +type XeroOrganizationConfigurationPageProps = WithPolicyProps & PlatformStackScreenProps; function XeroOrganizationConfigurationPage({ policy, route: { diff --git a/src/pages/workspace/categories/CategoryApproverPage.tsx b/src/pages/workspace/categories/CategoryApproverPage.tsx index 649681db6155..78f5f579bf93 100644 --- a/src/pages/workspace/categories/CategoryApproverPage.tsx +++ b/src/pages/workspace/categories/CategoryApproverPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import HeaderWithBackButton from '@components/HeaderWithBackButton'; import ScreenWrapper from '@components/ScreenWrapper'; @@ -8,6 +7,7 @@ import usePolicy from '@hooks/usePolicy'; import useThemeStyles from '@hooks/useThemeStyles'; import * as CategoryUtils from '@libs/CategoryUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@navigation/types'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; import * as Category from '@userActions/Policy/Category'; @@ -15,7 +15,7 @@ import CONST from '@src/CONST'; import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; -type EditCategoryPageProps = StackScreenProps; +type EditCategoryPageProps = PlatformStackScreenProps; function CategoryApproverPage({ route: { diff --git a/src/pages/workspace/categories/CategoryDefaultTaxRatePage.tsx b/src/pages/workspace/categories/CategoryDefaultTaxRatePage.tsx index 16ea5b9bd2a7..a87dae907aea 100644 --- a/src/pages/workspace/categories/CategoryDefaultTaxRatePage.tsx +++ b/src/pages/workspace/categories/CategoryDefaultTaxRatePage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useMemo} from 'react'; import HeaderWithBackButton from '@components/HeaderWithBackButton'; import ScreenWrapper from '@components/ScreenWrapper'; @@ -10,6 +9,7 @@ import usePolicy from '@hooks/usePolicy'; import useThemeStyles from '@hooks/useThemeStyles'; import * as CategoryUtils from '@libs/CategoryUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@navigation/types'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; import * as Category from '@userActions/Policy/Category'; @@ -18,7 +18,7 @@ import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; import type {TaxRate} from '@src/types/onyx'; -type EditCategoryPageProps = StackScreenProps; +type EditCategoryPageProps = PlatformStackScreenProps; function CategoryDefaultTaxRatePage({ route: { diff --git a/src/pages/workspace/categories/CategoryDescriptionHintPage.tsx b/src/pages/workspace/categories/CategoryDescriptionHintPage.tsx index d16d66ce3ea3..26bd66833929 100644 --- a/src/pages/workspace/categories/CategoryDescriptionHintPage.tsx +++ b/src/pages/workspace/categories/CategoryDescriptionHintPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import {View} from 'react-native'; import {useOnyx} from 'react-native-onyx'; @@ -12,6 +11,7 @@ import useAutoFocusInput from '@hooks/useAutoFocusInput'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@navigation/types'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; import * as Category from '@userActions/Policy/Category'; @@ -21,7 +21,7 @@ import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; import INPUT_IDS from '@src/types/form/WorkspaceCategoryDescriptionHintForm'; -type EditCategoryPageProps = StackScreenProps; +type EditCategoryPageProps = PlatformStackScreenProps; function CategoryDescriptionHintPage({ route: { diff --git a/src/pages/workspace/categories/CategoryFlagAmountsOverPage.tsx b/src/pages/workspace/categories/CategoryFlagAmountsOverPage.tsx index 6b675f740785..dbd491197d37 100644 --- a/src/pages/workspace/categories/CategoryFlagAmountsOverPage.tsx +++ b/src/pages/workspace/categories/CategoryFlagAmountsOverPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useState} from 'react'; import {View} from 'react-native'; import {useOnyx} from 'react-native-onyx'; @@ -14,6 +13,7 @@ import usePolicy from '@hooks/usePolicy'; import useThemeStyles from '@hooks/useThemeStyles'; import * as CurrencyUtils from '@libs/CurrencyUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@navigation/types'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; import * as Category from '@userActions/Policy/Category'; @@ -25,7 +25,7 @@ import INPUT_IDS from '@src/types/form/WorkspaceCategoryFlagAmountsOverForm'; import type {PolicyCategoryExpenseLimitType} from '@src/types/onyx/PolicyCategory'; import ExpenseLimitTypeSelector from './ExpenseLimitTypeSelector/ExpenseLimitTypeSelector'; -type EditCategoryPageProps = StackScreenProps; +type EditCategoryPageProps = PlatformStackScreenProps; function CategoryFlagAmountsOverPage({ route: { diff --git a/src/pages/workspace/categories/CategoryGLCodePage.tsx b/src/pages/workspace/categories/CategoryGLCodePage.tsx index 131f17a14242..8e95eeae51d4 100644 --- a/src/pages/workspace/categories/CategoryGLCodePage.tsx +++ b/src/pages/workspace/categories/CategoryGLCodePage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback} from 'react'; import {useOnyx} from 'react-native-onyx'; import FormProvider from '@components/Form/FormProvider'; @@ -11,6 +10,7 @@ import useAutoFocusInput from '@hooks/useAutoFocusInput'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@navigation/types'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; import * as Category from '@userActions/Policy/Category'; @@ -20,7 +20,7 @@ import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; import INPUT_IDS from '@src/types/form/WorkspaceCategoryForm'; -type EditCategoryPageProps = StackScreenProps; +type EditCategoryPageProps = PlatformStackScreenProps; function CategoryGLCodePage({route}: EditCategoryPageProps) { const styles = useThemeStyles(); diff --git a/src/pages/workspace/categories/CategoryPayrollCodePage.tsx b/src/pages/workspace/categories/CategoryPayrollCodePage.tsx index df5ba802a566..43014547b6f5 100644 --- a/src/pages/workspace/categories/CategoryPayrollCodePage.tsx +++ b/src/pages/workspace/categories/CategoryPayrollCodePage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback} from 'react'; import {useOnyx} from 'react-native-onyx'; import FormProvider from '@components/Form/FormProvider'; @@ -11,6 +10,7 @@ import useAutoFocusInput from '@hooks/useAutoFocusInput'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@navigation/types'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; import * as Category from '@userActions/Policy/Category'; @@ -20,7 +20,7 @@ import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; import INPUT_IDS from '@src/types/form/WorkspaceCategoryForm'; -type EditCategoryPageProps = StackScreenProps; +type EditCategoryPageProps = PlatformStackScreenProps; function CategoryPayrollCodePage({route}: EditCategoryPageProps) { const styles = useThemeStyles(); diff --git a/src/pages/workspace/categories/CategoryRequireReceiptsOverPage.tsx b/src/pages/workspace/categories/CategoryRequireReceiptsOverPage.tsx index 7d526ede42b5..4c57a8b9ab2e 100644 --- a/src/pages/workspace/categories/CategoryRequireReceiptsOverPage.tsx +++ b/src/pages/workspace/categories/CategoryRequireReceiptsOverPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import {useOnyx} from 'react-native-onyx'; import type {ValueOf} from 'type-fest'; @@ -11,6 +10,7 @@ import usePolicy from '@hooks/usePolicy'; import useThemeStyles from '@hooks/useThemeStyles'; import * as CurrencyUtils from '@libs/CurrencyUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@navigation/types'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; import * as Category from '@userActions/Policy/Category'; @@ -19,7 +19,7 @@ import ONYXKEYS from '@src/ONYXKEYS'; import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; -type EditCategoryPageProps = StackScreenProps; +type EditCategoryPageProps = PlatformStackScreenProps; function getInitiallyFocusedOptionKey(isAlwaysSelected: boolean, isNeverSelected: boolean): ValueOf { if (isAlwaysSelected) { diff --git a/src/pages/workspace/categories/CategorySettingsPage.tsx b/src/pages/workspace/categories/CategorySettingsPage.tsx index 05111864f61a..94750e51e929 100644 --- a/src/pages/workspace/categories/CategorySettingsPage.tsx +++ b/src/pages/workspace/categories/CategorySettingsPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useEffect, useMemo, useState} from 'react'; import {View} from 'react-native'; import {useOnyx} from 'react-native-onyx'; @@ -20,6 +19,7 @@ import * as CategoryUtils from '@libs/CategoryUtils'; import * as CurrencyUtils from '@libs/CurrencyUtils'; import * as ErrorUtils from '@libs/ErrorUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import {isControlPolicy} from '@libs/PolicyUtils'; import * as PolicyUtils from '@libs/PolicyUtils'; import type {SettingsNavigatorParamList} from '@navigation/types'; @@ -31,7 +31,7 @@ import ONYXKEYS from '@src/ONYXKEYS'; import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; -type CategorySettingsPageProps = StackScreenProps; +type CategorySettingsPageProps = PlatformStackScreenProps; function CategorySettingsPage({ route: { diff --git a/src/pages/workspace/categories/CreateCategoryPage.tsx b/src/pages/workspace/categories/CreateCategoryPage.tsx index 472cba1215af..0b431cef46b8 100644 --- a/src/pages/workspace/categories/CreateCategoryPage.tsx +++ b/src/pages/workspace/categories/CreateCategoryPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback} from 'react'; import {withOnyx} from 'react-native-onyx'; import type {OnyxEntry} from 'react-native-onyx'; @@ -8,6 +7,7 @@ import ScreenWrapper from '@components/ScreenWrapper'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@navigation/types'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; import * as Category from '@userActions/Policy/Category'; @@ -23,7 +23,7 @@ type WorkspaceCreateCategoryPageOnyxProps = { policyCategories: OnyxEntry; }; -type CreateCategoryPageProps = WorkspaceCreateCategoryPageOnyxProps & StackScreenProps; +type CreateCategoryPageProps = WorkspaceCreateCategoryPageOnyxProps & PlatformStackScreenProps; function CreateCategoryPage({route, policyCategories}: CreateCategoryPageProps) { const styles = useThemeStyles(); diff --git a/src/pages/workspace/categories/EditCategoryPage.tsx b/src/pages/workspace/categories/EditCategoryPage.tsx index 224233fff318..4a7047ce82de 100644 --- a/src/pages/workspace/categories/EditCategoryPage.tsx +++ b/src/pages/workspace/categories/EditCategoryPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback} from 'react'; import {withOnyx} from 'react-native-onyx'; import type {OnyxEntry} from 'react-native-onyx'; @@ -8,6 +7,7 @@ import ScreenWrapper from '@components/ScreenWrapper'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@navigation/types'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; import * as Category from '@userActions/Policy/Category'; @@ -23,7 +23,7 @@ type WorkspaceEditCategoryPageOnyxProps = { policyCategories: OnyxEntry; }; -type EditCategoryPageProps = WorkspaceEditCategoryPageOnyxProps & StackScreenProps; +type EditCategoryPageProps = WorkspaceEditCategoryPageOnyxProps & PlatformStackScreenProps; function EditCategoryPage({route, policyCategories}: EditCategoryPageProps) { const styles = useThemeStyles(); diff --git a/src/pages/workspace/categories/ImportCategoriesPage.tsx b/src/pages/workspace/categories/ImportCategoriesPage.tsx index d0eecc54ab9c..cdb0cae964b1 100644 --- a/src/pages/workspace/categories/ImportCategoriesPage.tsx +++ b/src/pages/workspace/categories/ImportCategoriesPage.tsx @@ -1,14 +1,14 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import ImportSpreedsheet from '@components/ImportSpreadsheet'; import usePolicy from '@hooks/usePolicy'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import NotFoundPage from '@pages/ErrorPage/NotFoundPage'; import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; -type ImportCategoriesPageProps = StackScreenProps; +type ImportCategoriesPageProps = PlatformStackScreenProps; function ImportCategoriesPage({route}: ImportCategoriesPageProps) { const policyID = route.params.policyID; diff --git a/src/pages/workspace/categories/ImportedCategoriesPage.tsx b/src/pages/workspace/categories/ImportedCategoriesPage.tsx index 041e2b77c91e..05db9a7ce0f6 100644 --- a/src/pages/workspace/categories/ImportedCategoriesPage.tsx +++ b/src/pages/workspace/categories/ImportedCategoriesPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useState} from 'react'; import {useOnyx} from 'react-native-onyx'; import ConfirmModal from '@components/ConfirmModal'; @@ -12,6 +11,7 @@ import {closeImportPage} from '@libs/actions/ImportSpreadsheet'; import {importPolicyCategories} from '@libs/actions/Policy/Category'; import {findDuplicate, generateColumnNames} from '@libs/importSpreadsheetUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import {isControlPolicy} from '@libs/PolicyUtils'; import * as PolicyUtils from '@libs/PolicyUtils'; @@ -22,7 +22,7 @@ import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; import type {Errors} from '@src/types/onyx/OnyxCommon'; -type ImportedCategoriesPageProps = StackScreenProps; +type ImportedCategoriesPageProps = PlatformStackScreenProps; function ImportedCategoriesPage({route}: ImportedCategoriesPageProps) { const {translate} = useLocalize(); const [spreadsheet] = useOnyx(ONYXKEYS.IMPORTED_SPREADSHEET); diff --git a/src/pages/workspace/categories/WorkspaceCategoriesPage.tsx b/src/pages/workspace/categories/WorkspaceCategoriesPage.tsx index fa0b57ba207c..dd46753fb8e1 100644 --- a/src/pages/workspace/categories/WorkspaceCategoriesPage.tsx +++ b/src/pages/workspace/categories/WorkspaceCategoriesPage.tsx @@ -1,5 +1,4 @@ import {useFocusEffect, useIsFocused} from '@react-navigation/native'; -import type {StackScreenProps} from '@react-navigation/stack'; import lodashSortBy from 'lodash/sortBy'; import React, {useCallback, useEffect, useMemo, useState} from 'react'; import {ActivityIndicator, View} from 'react-native'; @@ -36,6 +35,7 @@ import {turnOffMobileSelectionMode} from '@libs/actions/MobileSelectionMode'; import * as DeviceCapabilities from '@libs/DeviceCapabilities'; import localeCompare from '@libs/LocaleCompare'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {FullScreenNavigatorParamList} from '@libs/Navigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; @@ -54,7 +54,7 @@ type PolicyOption = ListItem & { keyForList: string; }; -type WorkspaceCategoriesPageProps = StackScreenProps; +type WorkspaceCategoriesPageProps = PlatformStackScreenProps; function WorkspaceCategoriesPage({route}: WorkspaceCategoriesPageProps) { const {shouldUseNarrowLayout, isSmallScreenWidth} = useResponsiveLayout(); diff --git a/src/pages/workspace/companyCards/WorkspaceCompanyCardAccountSelectCardPage.tsx b/src/pages/workspace/companyCards/WorkspaceCompanyCardAccountSelectCardPage.tsx index 3df8598fde2d..4a7555f4a91f 100644 --- a/src/pages/workspace/companyCards/WorkspaceCompanyCardAccountSelectCardPage.tsx +++ b/src/pages/workspace/companyCards/WorkspaceCompanyCardAccountSelectCardPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useMemo} from 'react'; import {View} from 'react-native'; import {useOnyx} from 'react-native-onyx'; @@ -13,6 +12,7 @@ import useLocalize from '@hooks/useLocalize'; import usePolicy from '@hooks/usePolicy'; import useThemeStyles from '@hooks/useThemeStyles'; import * as Policy from '@libs/actions/Policy/Policy'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import Navigation from '@navigation/Navigation'; import type {SettingsNavigatorParamList} from '@navigation/types'; @@ -23,7 +23,7 @@ import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; import {getExportMenuItem} from './utils'; -type WorkspaceCompanyCardAccountSelectCardProps = StackScreenProps; +type WorkspaceCompanyCardAccountSelectCardProps = PlatformStackScreenProps; function WorkspaceCompanyCardAccountSelectCardPage({route}: WorkspaceCompanyCardAccountSelectCardProps) { const {translate} = useLocalize(); diff --git a/src/pages/workspace/companyCards/WorkspaceCompanyCardDetailsPage.tsx b/src/pages/workspace/companyCards/WorkspaceCompanyCardDetailsPage.tsx index df4e9635e851..d460daa15a05 100644 --- a/src/pages/workspace/companyCards/WorkspaceCompanyCardDetailsPage.tsx +++ b/src/pages/workspace/companyCards/WorkspaceCompanyCardDetailsPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import {format} from 'date-fns'; import React, {useState} from 'react'; import {ActivityIndicator, View} from 'react-native'; @@ -20,6 +19,7 @@ import useThemeStyles from '@hooks/useThemeStyles'; import * as Policy from '@libs/actions/Policy/Policy'; import * as CardUtils from '@libs/CardUtils'; import * as ErrorUtils from '@libs/ErrorUtils'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import * as PersonalDetailsUtils from '@libs/PersonalDetailsUtils'; import * as PolicyUtils from '@libs/PolicyUtils'; @@ -33,7 +33,7 @@ import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; import {getExportMenuItem} from './utils'; -type WorkspaceCompanyCardDetailsPageProps = StackScreenProps; +type WorkspaceCompanyCardDetailsPageProps = PlatformStackScreenProps; function WorkspaceCompanyCardDetailsPage({route}: WorkspaceCompanyCardDetailsPageProps) { const {policyID, cardID, backTo, bank} = route.params; diff --git a/src/pages/workspace/companyCards/WorkspaceCompanyCardEditCardNamePage.tsx b/src/pages/workspace/companyCards/WorkspaceCompanyCardEditCardNamePage.tsx index c55d575838a8..d5baa5c9f711 100644 --- a/src/pages/workspace/companyCards/WorkspaceCompanyCardEditCardNamePage.tsx +++ b/src/pages/workspace/companyCards/WorkspaceCompanyCardEditCardNamePage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import {useOnyx} from 'react-native-onyx'; import FormProvider from '@components/Form/FormProvider'; @@ -11,6 +10,7 @@ import useAutoFocusInput from '@hooks/useAutoFocusInput'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import * as Policy from '@libs/actions/Policy/Policy'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import * as ValidationUtils from '@libs/ValidationUtils'; import Navigation from '@navigation/Navigation'; @@ -22,7 +22,7 @@ import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; import INPUT_IDS from '@src/types/form/EditExpensifyCardNameForm'; -type WorkspaceCompanyCardEditCardNamePageProps = StackScreenProps; +type WorkspaceCompanyCardEditCardNamePageProps = PlatformStackScreenProps; function WorkspaceCompanyCardEditCardNamePage({route}: WorkspaceCompanyCardEditCardNamePageProps) { const {policyID, cardID, bank} = route.params; diff --git a/src/pages/workspace/companyCards/WorkspaceCompanyCardFeedSelectorPage.tsx b/src/pages/workspace/companyCards/WorkspaceCompanyCardFeedSelectorPage.tsx index 75f7672199cb..35ca2c5f977d 100644 --- a/src/pages/workspace/companyCards/WorkspaceCompanyCardFeedSelectorPage.tsx +++ b/src/pages/workspace/companyCards/WorkspaceCompanyCardFeedSelectorPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import {useOnyx} from 'react-native-onyx'; import HeaderWithBackButton from '@components/HeaderWithBackButton'; @@ -12,6 +11,7 @@ import type {ListItem} from '@components/SelectionList/types'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import * as CardUtils from '@libs/CardUtils'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import Navigation from '@navigation/Navigation'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; @@ -45,7 +45,7 @@ const mockedData: CardFeeds = { }, }; -type WorkspaceCompanyCardFeedSelectorPageProps = StackScreenProps; +type WorkspaceCompanyCardFeedSelectorPageProps = PlatformStackScreenProps; function WorkspaceCompanyCardFeedSelectorPage({route}: WorkspaceCompanyCardFeedSelectorPageProps) { const {policyID} = route.params; diff --git a/src/pages/workspace/companyCards/WorkspaceCompanyCardsPage.tsx b/src/pages/workspace/companyCards/WorkspaceCompanyCardsPage.tsx index 7ad3d7fd47b1..2ae69162a1c8 100644 --- a/src/pages/workspace/companyCards/WorkspaceCompanyCardsPage.tsx +++ b/src/pages/workspace/companyCards/WorkspaceCompanyCardsPage.tsx @@ -1,5 +1,4 @@ import {useFocusEffect} from '@react-navigation/native'; -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback} from 'react'; import {ActivityIndicator} from 'react-native'; import {useOnyx} from 'react-native-onyx'; @@ -7,6 +6,7 @@ import * as Illustrations from '@components/Icon/Illustrations'; import useLocalize from '@hooks/useLocalize'; import useTheme from '@hooks/useTheme'; import useThemeStyles from '@hooks/useThemeStyles'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {FullScreenNavigatorParamList} from '@libs/Navigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; @@ -112,7 +112,7 @@ const mockedCards = { }, } as unknown as WorkspaceCardsList; -type WorkspaceCompanyCardPageProps = StackScreenProps; +type WorkspaceCompanyCardPageProps = PlatformStackScreenProps; function WorkspaceCompanyCardPage({route}: WorkspaceCompanyCardPageProps) { const {translate} = useLocalize(); diff --git a/src/pages/workspace/companyCards/WorkspaceCompanyCardsSettingsFeedNamePage.tsx b/src/pages/workspace/companyCards/WorkspaceCompanyCardsSettingsFeedNamePage.tsx index bacc82331331..d8282816fe09 100644 --- a/src/pages/workspace/companyCards/WorkspaceCompanyCardsSettingsFeedNamePage.tsx +++ b/src/pages/workspace/companyCards/WorkspaceCompanyCardsSettingsFeedNamePage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback} from 'react'; import {View} from 'react-native'; import {useOnyx} from 'react-native-onyx'; @@ -15,6 +14,7 @@ import usePolicy from '@hooks/usePolicy'; import useThemeStyles from '@hooks/useThemeStyles'; import * as Policy from '@libs/actions/Policy/Policy'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import * as ValidationUtils from '@libs/ValidationUtils'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; @@ -25,7 +25,7 @@ import type SCREENS from '@src/SCREENS'; import type {WorkspaceCompanyCardFeedName} from '@src/types/form/WorkspaceCompanyCardFeedName'; import INPUT_IDS from '@src/types/form/WorkspaceTaxCustomName'; -type WorkspaceCompanyCardsSettingsFeedNamePageProps = StackScreenProps; +type WorkspaceCompanyCardsSettingsFeedNamePageProps = PlatformStackScreenProps; function WorkspaceCompanyCardsSettingsFeedNamePage({ route: { diff --git a/src/pages/workspace/companyCards/WorkspaceCompanyCardsSettingsPage.tsx b/src/pages/workspace/companyCards/WorkspaceCompanyCardsSettingsPage.tsx index 42f89c44ee8b..e79e605f9770 100644 --- a/src/pages/workspace/companyCards/WorkspaceCompanyCardsSettingsPage.tsx +++ b/src/pages/workspace/companyCards/WorkspaceCompanyCardsSettingsPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useState} from 'react'; import {View} from 'react-native'; import {useOnyx} from 'react-native-onyx'; @@ -15,6 +14,7 @@ import usePolicy from '@hooks/usePolicy'; import useThemeStyles from '@hooks/useThemeStyles'; import * as Policy from '@libs/actions/Policy/Policy'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; import ToggleSettingOptionRow from '@pages/workspace/workflows/ToggleSettingsOptionRow'; @@ -23,7 +23,7 @@ import ONYXKEYS from '@src/ONYXKEYS'; import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; -type WorkspaceCompanyCardsSettingsPageProps = StackScreenProps; +type WorkspaceCompanyCardsSettingsPageProps = PlatformStackScreenProps; function WorkspaceCompanyCardsSettingsPage({ route: { diff --git a/src/pages/workspace/distanceRates/CreateDistanceRatePage.tsx b/src/pages/workspace/distanceRates/CreateDistanceRatePage.tsx index 7566f458fcff..58545d244ffc 100644 --- a/src/pages/workspace/distanceRates/CreateDistanceRatePage.tsx +++ b/src/pages/workspace/distanceRates/CreateDistanceRatePage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback} from 'react'; import {View} from 'react-native'; import AmountForm from '@components/AmountForm'; @@ -12,6 +11,7 @@ import useAutoFocusInput from '@hooks/useAutoFocusInput'; import useLocalize from '@hooks/useLocalize'; import usePolicy from '@hooks/usePolicy'; import useThemeStyles from '@hooks/useThemeStyles'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import {getOptimisticRateName, validateRateValue} from '@libs/PolicyDistanceRatesUtils'; import Navigation from '@navigation/Navigation'; import type {SettingsNavigatorParamList} from '@navigation/types'; @@ -24,7 +24,7 @@ import type SCREENS from '@src/SCREENS'; import INPUT_IDS from '@src/types/form/PolicyCreateDistanceRateForm'; import type {Rate} from '@src/types/onyx/Policy'; -type CreateDistanceRatePageProps = StackScreenProps; +type CreateDistanceRatePageProps = PlatformStackScreenProps; function CreateDistanceRatePage({route}: CreateDistanceRatePageProps) { const styles = useThemeStyles(); diff --git a/src/pages/workspace/distanceRates/PolicyDistanceRateDetailsPage.tsx b/src/pages/workspace/distanceRates/PolicyDistanceRateDetailsPage.tsx index c4d033351b37..5cb1da60901f 100644 --- a/src/pages/workspace/distanceRates/PolicyDistanceRateDetailsPage.tsx +++ b/src/pages/workspace/distanceRates/PolicyDistanceRateDetailsPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useState} from 'react'; import {View} from 'react-native'; import {withOnyx} from 'react-native-onyx'; @@ -18,6 +17,7 @@ import useThemeStyles from '@hooks/useThemeStyles'; import * as CurrencyUtils from '@libs/CurrencyUtils'; import * as ErrorUtils from '@libs/ErrorUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@navigation/types'; import NotFoundPage from '@pages/ErrorPage/NotFoundPage'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; @@ -34,7 +34,7 @@ type PolicyDistanceRateDetailsPageOnyxProps = { policy: OnyxEntry; }; -type PolicyDistanceRateDetailsPageProps = PolicyDistanceRateDetailsPageOnyxProps & StackScreenProps; +type PolicyDistanceRateDetailsPageProps = PolicyDistanceRateDetailsPageOnyxProps & PlatformStackScreenProps; function PolicyDistanceRateDetailsPage({policy, route}: PolicyDistanceRateDetailsPageProps) { const styles = useThemeStyles(); diff --git a/src/pages/workspace/distanceRates/PolicyDistanceRateEditPage.tsx b/src/pages/workspace/distanceRates/PolicyDistanceRateEditPage.tsx index 30ab4b40d958..df301ae9b1e1 100644 --- a/src/pages/workspace/distanceRates/PolicyDistanceRateEditPage.tsx +++ b/src/pages/workspace/distanceRates/PolicyDistanceRateEditPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback} from 'react'; import {Keyboard} from 'react-native'; import AmountForm from '@components/AmountForm'; @@ -12,6 +11,7 @@ import useLocalize from '@hooks/useLocalize'; import usePolicy from '@hooks/usePolicy'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import {validateRateValue} from '@libs/PolicyDistanceRatesUtils'; import type {SettingsNavigatorParamList} from '@navigation/types'; import NotFoundPage from '@pages/ErrorPage/NotFoundPage'; @@ -22,7 +22,7 @@ import ONYXKEYS from '@src/ONYXKEYS'; import type SCREENS from '@src/SCREENS'; import INPUT_IDS from '@src/types/form/PolicyDistanceRateEditForm'; -type PolicyDistanceRateEditPageProps = StackScreenProps; +type PolicyDistanceRateEditPageProps = PlatformStackScreenProps; function PolicyDistanceRateEditPage({route}: PolicyDistanceRateEditPageProps) { const styles = useThemeStyles(); diff --git a/src/pages/workspace/distanceRates/PolicyDistanceRateTaxRateEditPage.tsx b/src/pages/workspace/distanceRates/PolicyDistanceRateTaxRateEditPage.tsx index 9fe090222691..4e9d03008f17 100644 --- a/src/pages/workspace/distanceRates/PolicyDistanceRateTaxRateEditPage.tsx +++ b/src/pages/workspace/distanceRates/PolicyDistanceRateTaxRateEditPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import HeaderWithBackButton from '@components/HeaderWithBackButton'; import ScreenWrapper from '@components/ScreenWrapper'; @@ -6,6 +5,7 @@ import TaxPicker from '@components/TaxPicker'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type * as OptionsListUtils from '@libs/OptionsListUtils'; import * as TransactionUtils from '@libs/TransactionUtils'; import type {SettingsNavigatorParamList} from '@navigation/types'; @@ -17,7 +17,7 @@ import CONST from '@src/CONST'; import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; -type PolicyDistanceRateTaxRateEditPageProps = WithPolicyOnyxProps & StackScreenProps; +type PolicyDistanceRateTaxRateEditPageProps = WithPolicyOnyxProps & PlatformStackScreenProps; function PolicyDistanceRateTaxRateEditPage({route, policy}: PolicyDistanceRateTaxRateEditPageProps) { const styles = useThemeStyles(); diff --git a/src/pages/workspace/distanceRates/PolicyDistanceRateTaxReclaimableEditPage.tsx b/src/pages/workspace/distanceRates/PolicyDistanceRateTaxReclaimableEditPage.tsx index f20272dd2f5c..91495572cbe0 100644 --- a/src/pages/workspace/distanceRates/PolicyDistanceRateTaxReclaimableEditPage.tsx +++ b/src/pages/workspace/distanceRates/PolicyDistanceRateTaxReclaimableEditPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback} from 'react'; import AmountForm from '@components/AmountForm'; import FormProvider from '@components/Form/FormProvider'; @@ -10,6 +9,7 @@ import useAutoFocusInput from '@hooks/useAutoFocusInput'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import {validateTaxClaimableValue} from '@libs/PolicyDistanceRatesUtils'; import type {SettingsNavigatorParamList} from '@navigation/types'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; @@ -21,7 +21,8 @@ import ONYXKEYS from '@src/ONYXKEYS'; import type SCREENS from '@src/SCREENS'; import INPUT_IDS from '@src/types/form/PolicyDistanceRateTaxReclaimableOnEditForm'; -type PolicyDistanceRateTaxReclaimableEditPageProps = WithPolicyOnyxProps & StackScreenProps; +type PolicyDistanceRateTaxReclaimableEditPageProps = WithPolicyOnyxProps & + PlatformStackScreenProps; function PolicyDistanceRateTaxReclaimableEditPage({route, policy}: PolicyDistanceRateTaxReclaimableEditPageProps) { const styles = useThemeStyles(); diff --git a/src/pages/workspace/distanceRates/PolicyDistanceRatesPage.tsx b/src/pages/workspace/distanceRates/PolicyDistanceRatesPage.tsx index 6ce697e00fd6..c5fb23638dcd 100644 --- a/src/pages/workspace/distanceRates/PolicyDistanceRatesPage.tsx +++ b/src/pages/workspace/distanceRates/PolicyDistanceRatesPage.tsx @@ -1,5 +1,4 @@ import {useFocusEffect, useIsFocused} from '@react-navigation/native'; -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useEffect, useMemo, useState} from 'react'; import {ActivityIndicator, View} from 'react-native'; import Button from '@components/Button'; @@ -25,6 +24,7 @@ import {turnOffMobileSelectionMode} from '@libs/actions/MobileSelectionMode'; import * as CurrencyUtils from '@libs/CurrencyUtils'; import * as DeviceCapabilities from '@libs/DeviceCapabilities'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {FullScreenNavigatorParamList} from '@navigation/types'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; import * as DistanceRate from '@userActions/Policy/DistanceRate'; @@ -36,7 +36,7 @@ import type {CustomUnit, Rate} from '@src/types/onyx/Policy'; type RateForList = ListItem & {value: string}; -type PolicyDistanceRatesPageProps = StackScreenProps; +type PolicyDistanceRatesPageProps = PlatformStackScreenProps; function PolicyDistanceRatesPage({ route: { diff --git a/src/pages/workspace/distanceRates/PolicyDistanceRatesSettingsPage.tsx b/src/pages/workspace/distanceRates/PolicyDistanceRatesSettingsPage.tsx index 53c1fe14237c..26b4459e8272 100644 --- a/src/pages/workspace/distanceRates/PolicyDistanceRatesSettingsPage.tsx +++ b/src/pages/workspace/distanceRates/PolicyDistanceRatesSettingsPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useState} from 'react'; import {View} from 'react-native'; import type {OnyxEntry} from 'react-native-onyx'; @@ -17,6 +16,7 @@ import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import * as ErrorUtils from '@libs/ErrorUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as OptionsListUtils from '@libs/OptionsListUtils'; import type {SettingsNavigatorParamList} from '@navigation/types'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; @@ -40,7 +40,7 @@ type PolicyDistanceRatesSettingsPageOnyxProps = { policyCategories: OnyxEntry; }; -type PolicyDistanceRatesSettingsPageProps = PolicyDistanceRatesSettingsPageOnyxProps & StackScreenProps; +type PolicyDistanceRatesSettingsPageProps = PolicyDistanceRatesSettingsPageOnyxProps & PlatformStackScreenProps; function PolicyDistanceRatesSettingsPage({policy, policyCategories, route}: PolicyDistanceRatesSettingsPageProps) { const styles = useThemeStyles(); diff --git a/src/pages/workspace/expensifyCard/WorkspaceCardSettingsPage.tsx b/src/pages/workspace/expensifyCard/WorkspaceCardSettingsPage.tsx index b34397cc43e3..2458e5033ab2 100644 --- a/src/pages/workspace/expensifyCard/WorkspaceCardSettingsPage.tsx +++ b/src/pages/workspace/expensifyCard/WorkspaceCardSettingsPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import {View} from 'react-native'; import {useOnyx} from 'react-native-onyx'; @@ -11,6 +10,7 @@ import TextLink from '@components/TextLink'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import {getLastFourDigits} from '@libs/BankAccountUtils'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import Navigation from '@navigation/Navigation'; import type {SettingsNavigatorParamList} from '@navigation/types'; @@ -20,7 +20,7 @@ import ONYXKEYS from '@src/ONYXKEYS'; import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; -type WorkspaceCardSettingsPageProps = StackScreenProps; +type WorkspaceCardSettingsPageProps = PlatformStackScreenProps; function WorkspaceCardSettingsPage({route}: WorkspaceCardSettingsPageProps) { const styles = useThemeStyles(); diff --git a/src/pages/workspace/expensifyCard/WorkspaceCardsListLabel.tsx b/src/pages/workspace/expensifyCard/WorkspaceCardsListLabel.tsx index f1075d85cfd8..a1ca4ce22e10 100644 --- a/src/pages/workspace/expensifyCard/WorkspaceCardsListLabel.tsx +++ b/src/pages/workspace/expensifyCard/WorkspaceCardsListLabel.tsx @@ -1,4 +1,3 @@ -import type {RouteProp} from '@react-navigation/native'; import {useRoute} from '@react-navigation/native'; import React, {useEffect, useMemo, useRef, useState} from 'react'; import {View} from 'react-native'; @@ -19,6 +18,7 @@ import useThemeStyles from '@hooks/useThemeStyles'; import useWindowDimensions from '@hooks/useWindowDimensions'; import * as CurrencyUtils from '@libs/CurrencyUtils'; import getClickedTargetLocation from '@libs/getClickedTargetLocation'; +import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import type {FullScreenNavigatorParamList} from '@navigation/types'; import variables from '@styles/variables'; @@ -40,7 +40,7 @@ type WorkspaceCardsListLabelProps = { }; function WorkspaceCardsListLabel({type, value, style}: WorkspaceCardsListLabelProps) { - const route = useRoute>(); + const route = useRoute>(); const policy = usePolicy(route.params.policyID); const styles = useThemeStyles(); const {windowWidth} = useWindowDimensions(); diff --git a/src/pages/workspace/expensifyCard/WorkspaceEditCardLimitPage.tsx b/src/pages/workspace/expensifyCard/WorkspaceEditCardLimitPage.tsx index bb8515fe85d3..d2e96abd2fe0 100644 --- a/src/pages/workspace/expensifyCard/WorkspaceEditCardLimitPage.tsx +++ b/src/pages/workspace/expensifyCard/WorkspaceEditCardLimitPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useMemo, useState} from 'react'; import {useOnyx} from 'react-native-onyx'; import AmountForm from '@components/AmountForm'; @@ -12,6 +11,7 @@ import useAutoFocusInput from '@hooks/useAutoFocusInput'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import * as CurrencyUtils from '@libs/CurrencyUtils'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import * as ValidationUtils from '@libs/ValidationUtils'; import Navigation from '@navigation/Navigation'; @@ -26,7 +26,7 @@ import INPUT_IDS from '@src/types/form/EditExpensifyCardLimitForm'; type ConfirmationWarningTranslationPaths = 'workspace.expensifyCard.smartLimitWarning' | 'workspace.expensifyCard.monthlyLimitWarning' | 'workspace.expensifyCard.fixedLimitWarning'; -type WorkspaceEditCardLimitPageProps = StackScreenProps; +type WorkspaceEditCardLimitPageProps = PlatformStackScreenProps; function WorkspaceEditCardLimitPage({route}: WorkspaceEditCardLimitPageProps) { const {policyID, cardID} = route.params; diff --git a/src/pages/workspace/expensifyCard/WorkspaceEditCardLimitTypePage.tsx b/src/pages/workspace/expensifyCard/WorkspaceEditCardLimitTypePage.tsx index e4f14f6c137a..82e01ae3887c 100644 --- a/src/pages/workspace/expensifyCard/WorkspaceEditCardLimitTypePage.tsx +++ b/src/pages/workspace/expensifyCard/WorkspaceEditCardLimitTypePage.tsx @@ -1,5 +1,4 @@ import {useFocusEffect} from '@react-navigation/native'; -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useMemo, useState} from 'react'; import {useOnyx} from 'react-native-onyx'; import FullPageOfflineBlockingView from '@components/BlockingViews/FullPageOfflineBlockingView'; @@ -13,6 +12,7 @@ import useLocalize from '@hooks/useLocalize'; import usePolicy from '@hooks/usePolicy'; import useThemeStyles from '@hooks/useThemeStyles'; import * as CurrencyUtils from '@libs/CurrencyUtils'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import Navigation from '@navigation/Navigation'; import type {SettingsNavigatorParamList} from '@navigation/types'; @@ -25,7 +25,7 @@ import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; import {isEmptyObject} from '@src/types/utils/EmptyObject'; -type WorkspaceEditCardLimitTypePageProps = StackScreenProps; +type WorkspaceEditCardLimitTypePageProps = PlatformStackScreenProps; function WorkspaceEditCardLimitTypePage({route}: WorkspaceEditCardLimitTypePageProps) { const {policyID, cardID} = route.params; diff --git a/src/pages/workspace/expensifyCard/WorkspaceEditCardNamePage.tsx b/src/pages/workspace/expensifyCard/WorkspaceEditCardNamePage.tsx index c5eb8a53930a..74128fdd05ae 100644 --- a/src/pages/workspace/expensifyCard/WorkspaceEditCardNamePage.tsx +++ b/src/pages/workspace/expensifyCard/WorkspaceEditCardNamePage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import {useOnyx} from 'react-native-onyx'; import FormProvider from '@components/Form/FormProvider'; @@ -10,6 +9,7 @@ import TextInput from '@components/TextInput'; import useAutoFocusInput from '@hooks/useAutoFocusInput'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import * as ValidationUtils from '@libs/ValidationUtils'; import Navigation from '@navigation/Navigation'; @@ -22,7 +22,7 @@ import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; import INPUT_IDS from '@src/types/form/EditExpensifyCardNameForm'; -type WorkspaceEditCardNamePageProps = StackScreenProps; +type WorkspaceEditCardNamePageProps = PlatformStackScreenProps; function WorkspaceEditCardNamePage({route}: WorkspaceEditCardNamePageProps) { const {policyID, cardID} = route.params; diff --git a/src/pages/workspace/expensifyCard/WorkspaceExpensifyCardBankAccounts.tsx b/src/pages/workspace/expensifyCard/WorkspaceExpensifyCardBankAccounts.tsx index b8b8776df048..8d38219c6c79 100644 --- a/src/pages/workspace/expensifyCard/WorkspaceExpensifyCardBankAccounts.tsx +++ b/src/pages/workspace/expensifyCard/WorkspaceExpensifyCardBankAccounts.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import {View} from 'react-native'; import {useOnyx} from 'react-native-onyx'; @@ -12,6 +11,7 @@ import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import {getLastFourDigits} from '@libs/BankAccountUtils'; import * as CardUtils from '@libs/CardUtils'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import Navigation from '@navigation/Navigation'; import type {SettingsNavigatorParamList} from '@navigation/types'; @@ -24,7 +24,7 @@ import type SCREENS from '@src/SCREENS'; import type {BankName} from '@src/types/onyx/Bank'; import {isEmptyObject} from '@src/types/utils/EmptyObject'; -type WorkspaceExpensifyCardBankAccountsProps = StackScreenProps; +type WorkspaceExpensifyCardBankAccountsProps = PlatformStackScreenProps; function WorkspaceExpensifyCardBankAccounts({route}: WorkspaceExpensifyCardBankAccountsProps) { const {translate} = useLocalize(); diff --git a/src/pages/workspace/expensifyCard/WorkspaceExpensifyCardDetailsPage.tsx b/src/pages/workspace/expensifyCard/WorkspaceExpensifyCardDetailsPage.tsx index 03b489d93402..cd0b9ff21ce6 100644 --- a/src/pages/workspace/expensifyCard/WorkspaceExpensifyCardDetailsPage.tsx +++ b/src/pages/workspace/expensifyCard/WorkspaceExpensifyCardDetailsPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useEffect, useState} from 'react'; import {View} from 'react-native'; import {useOnyx} from 'react-native-onyx'; @@ -21,6 +20,7 @@ import useResponsiveLayout from '@hooks/useResponsiveLayout'; import useThemeStyles from '@hooks/useThemeStyles'; import * as CardUtils from '@libs/CardUtils'; import * as CurrencyUtils from '@libs/CurrencyUtils'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import * as PersonalDetailsUtils from '@libs/PersonalDetailsUtils'; import * as PolicyUtils from '@libs/PolicyUtils'; @@ -33,7 +33,7 @@ import ONYXKEYS from '@src/ONYXKEYS'; import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; -type WorkspaceExpensifyCardDetailsPageProps = StackScreenProps; +type WorkspaceExpensifyCardDetailsPageProps = PlatformStackScreenProps; function WorkspaceExpensifyCardDetailsPage({route}: WorkspaceExpensifyCardDetailsPageProps) { const {policyID, cardID, backTo} = route.params; diff --git a/src/pages/workspace/expensifyCard/WorkspaceExpensifyCardListPage.tsx b/src/pages/workspace/expensifyCard/WorkspaceExpensifyCardListPage.tsx index 25de151bbb6d..24538d0dbdb1 100644 --- a/src/pages/workspace/expensifyCard/WorkspaceExpensifyCardListPage.tsx +++ b/src/pages/workspace/expensifyCard/WorkspaceExpensifyCardListPage.tsx @@ -1,4 +1,3 @@ -import type {RouteProp} from '@react-navigation/native'; import React, {useCallback, useMemo} from 'react'; import type {ListRenderItemInfo} from 'react-native'; import {FlatList, View} from 'react-native'; @@ -16,6 +15,7 @@ import usePolicy from '@hooks/usePolicy'; import useResponsiveLayout from '@hooks/useResponsiveLayout'; import useThemeStyles from '@hooks/useThemeStyles'; import * as CardUtils from '@libs/CardUtils'; +import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types'; import Navigation from '@navigation/Navigation'; import type {FullScreenNavigatorParamList} from '@navigation/types'; import CONST from '@src/CONST'; @@ -30,7 +30,7 @@ import WorkspaceCardListRow from './WorkspaceCardListRow'; type WorkspaceExpensifyCardListPageProps = { /** Route from navigation */ - route: RouteProp; + route: PlatformStackRouteProp; /** List of Expensify cards */ cardsList: OnyxEntry; diff --git a/src/pages/workspace/expensifyCard/WorkspaceExpensifyCardPage.tsx b/src/pages/workspace/expensifyCard/WorkspaceExpensifyCardPage.tsx index bc29918fe450..4fd741be7684 100644 --- a/src/pages/workspace/expensifyCard/WorkspaceExpensifyCardPage.tsx +++ b/src/pages/workspace/expensifyCard/WorkspaceExpensifyCardPage.tsx @@ -1,11 +1,11 @@ import {useFocusEffect} from '@react-navigation/native'; -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback} from 'react'; import {ActivityIndicator} from 'react-native'; import {useOnyx} from 'react-native-onyx'; import useNetwork from '@hooks/useNetwork'; import useTheme from '@hooks/useTheme'; import useThemeStyles from '@hooks/useThemeStyles'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {FullScreenNavigatorParamList} from '@libs/Navigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; @@ -16,7 +16,7 @@ import type SCREENS from '@src/SCREENS'; import WorkspaceExpensifyCardListPage from './WorkspaceExpensifyCardListPage'; import WorkspaceExpensifyCardPageEmptyState from './WorkspaceExpensifyCardPageEmptyState'; -type WorkspaceExpensifyCardPageProps = StackScreenProps; +type WorkspaceExpensifyCardPageProps = PlatformStackScreenProps; function WorkspaceExpensifyCardPage({route}: WorkspaceExpensifyCardPageProps) { const policyID = route.params.policyID ?? '-1'; diff --git a/src/pages/workspace/expensifyCard/WorkspaceExpensifyCardPageEmptyState.tsx b/src/pages/workspace/expensifyCard/WorkspaceExpensifyCardPageEmptyState.tsx index 7dc6293e23ea..95491a3196ca 100644 --- a/src/pages/workspace/expensifyCard/WorkspaceExpensifyCardPageEmptyState.tsx +++ b/src/pages/workspace/expensifyCard/WorkspaceExpensifyCardPageEmptyState.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useState} from 'react'; import {View} from 'react-native'; import {useOnyx} from 'react-native-onyx'; @@ -12,6 +11,7 @@ import useResponsiveLayout from '@hooks/useResponsiveLayout'; import useTheme from '@hooks/useTheme'; import useThemeStyles from '@hooks/useThemeStyles'; import * as CardUtils from '@libs/CardUtils'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {FullScreenNavigatorParamList} from '@libs/Navigation/types'; import Navigation from '@navigation/Navigation'; import type {WithPolicyAndFullscreenLoadingProps} from '@pages/workspace/withPolicyAndFullscreenLoading'; @@ -40,7 +40,7 @@ const expensifyCardFeatures: FeatureListItem[] = [ ]; type WorkspaceExpensifyCardPageEmptyStateProps = { - route: StackScreenProps['route']; + route: PlatformStackScreenProps['route']; } & WithPolicyAndFullscreenLoadingProps; function WorkspaceExpensifyCardPageEmptyState({route, policy}: WorkspaceExpensifyCardPageEmptyStateProps) { diff --git a/src/pages/workspace/expensifyCard/WorkspaceSettlementAccountPage.tsx b/src/pages/workspace/expensifyCard/WorkspaceSettlementAccountPage.tsx index 369973485499..4d49a86a410a 100644 --- a/src/pages/workspace/expensifyCard/WorkspaceSettlementAccountPage.tsx +++ b/src/pages/workspace/expensifyCard/WorkspaceSettlementAccountPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useMemo} from 'react'; import {View} from 'react-native'; import {useOnyx} from 'react-native-onyx'; @@ -15,6 +14,7 @@ import useThemeStyles from '@hooks/useThemeStyles'; import * as AccountingUtils from '@libs/AccountingUtils'; import {getLastFourDigits} from '@libs/BankAccountUtils'; import * as CardUtils from '@libs/CardUtils'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import Navigation from '@navigation/Navigation'; import type {SettingsNavigatorParamList} from '@navigation/types'; @@ -27,7 +27,7 @@ import type SCREENS from '@src/SCREENS'; import type {BankName} from '@src/types/onyx/Bank'; import type {ConnectionName} from '@src/types/onyx/Policy'; -type WorkspaceSettlementAccountPageProps = StackScreenProps; +type WorkspaceSettlementAccountPageProps = PlatformStackScreenProps; function WorkspaceSettlementAccountPage({route}: WorkspaceSettlementAccountPageProps) { const styles = useThemeStyles(); diff --git a/src/pages/workspace/expensifyCard/WorkspaceSettlementFrequencyPage.tsx b/src/pages/workspace/expensifyCard/WorkspaceSettlementFrequencyPage.tsx index 62db3af81da6..52fa4c8890d0 100644 --- a/src/pages/workspace/expensifyCard/WorkspaceSettlementFrequencyPage.tsx +++ b/src/pages/workspace/expensifyCard/WorkspaceSettlementFrequencyPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useMemo} from 'react'; import {useOnyx} from 'react-native-onyx'; import type {ValueOf} from 'type-fest'; @@ -9,6 +8,7 @@ import RadioListItem from '@components/SelectionList/RadioListItem'; import Text from '@components/Text'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import Navigation from '@navigation/Navigation'; import type {SettingsNavigatorParamList} from '@navigation/types'; @@ -19,7 +19,7 @@ import ONYXKEYS from '@src/ONYXKEYS'; import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; -type WorkspaceSettlementFrequencyPageProps = StackScreenProps; +type WorkspaceSettlementFrequencyPageProps = PlatformStackScreenProps; function WorkspaceSettlementFrequencyPage({route}: WorkspaceSettlementFrequencyPageProps) { const styles = useThemeStyles(); diff --git a/src/pages/workspace/expensifyCard/issueNew/IssueNewCardPage.tsx b/src/pages/workspace/expensifyCard/issueNew/IssueNewCardPage.tsx index 3b777765c7b8..d3dad7e94fdc 100644 --- a/src/pages/workspace/expensifyCard/issueNew/IssueNewCardPage.tsx +++ b/src/pages/workspace/expensifyCard/issueNew/IssueNewCardPage.tsx @@ -1,6 +1,6 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useEffect} from 'react'; import {useOnyx} from 'react-native-onyx'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@navigation/types'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; import type {WithPolicyAndFullscreenLoadingProps} from '@pages/workspace/withPolicyAndFullscreenLoading'; @@ -16,7 +16,7 @@ import ConfirmationStep from './ConfirmationStep'; import LimitStep from './LimitStep'; import LimitTypeStep from './LimitTypeStep'; -type IssueNewCardPageProps = WithPolicyAndFullscreenLoadingProps & StackScreenProps; +type IssueNewCardPageProps = WithPolicyAndFullscreenLoadingProps & PlatformStackScreenProps; function IssueNewCardPage({policy, route}: IssueNewCardPageProps) { const [issueNewCard] = useOnyx(ONYXKEYS.ISSUE_NEW_EXPENSIFY_CARD); diff --git a/src/pages/workspace/invoices/WorkspaceInvoicesPage.tsx b/src/pages/workspace/invoices/WorkspaceInvoicesPage.tsx index bbe19e63a1b5..f8e14d557ac0 100644 --- a/src/pages/workspace/invoices/WorkspaceInvoicesPage.tsx +++ b/src/pages/workspace/invoices/WorkspaceInvoicesPage.tsx @@ -1,9 +1,9 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import {View} from 'react-native'; import useLocalize from '@hooks/useLocalize'; import useResponsiveLayout from '@hooks/useResponsiveLayout'; import useThemeStyles from '@hooks/useThemeStyles'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {FullScreenNavigatorParamList} from '@navigation/types'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; import WorkspacePageWithSections from '@pages/workspace/WorkspacePageWithSections'; @@ -13,7 +13,7 @@ import WorkspaceInvoicesNoVBAView from './WorkspaceInvoicesNoVBAView'; import WorkspaceInvoicesVBAView from './WorkspaceInvoicesVBAView'; import WorkspaceInvoiceVBASection from './WorkspaceInvoiceVBASection'; -type WorkspaceInvoicesPageProps = StackScreenProps; +type WorkspaceInvoicesPageProps = PlatformStackScreenProps; function WorkspaceInvoicesPage({route}: WorkspaceInvoicesPageProps) { const {translate} = useLocalize(); const styles = useThemeStyles(); diff --git a/src/pages/workspace/invoices/WorkspaceInvoicingDetailsName.tsx b/src/pages/workspace/invoices/WorkspaceInvoicingDetailsName.tsx index 80f323431baa..63dd9bfce0ab 100644 --- a/src/pages/workspace/invoices/WorkspaceInvoicingDetailsName.tsx +++ b/src/pages/workspace/invoices/WorkspaceInvoicingDetailsName.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import {useOnyx} from 'react-native-onyx'; import FormProvider from '@components/Form/FormProvider'; @@ -10,6 +9,7 @@ import TextInput from '@components/TextInput'; import useAutoFocusInput from '@hooks/useAutoFocusInput'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as ValidationUtils from '@libs/ValidationUtils'; import Navigation from '@navigation/Navigation'; import type {SettingsNavigatorParamList} from '@navigation/types'; @@ -19,7 +19,7 @@ import ONYXKEYS from '@src/ONYXKEYS'; import type SCREENS from '@src/SCREENS'; import INPUT_IDS from '@src/types/form/WorkspaceInvoicesCompanyNameForm'; -type WorkspaceInvoicingDetailsNameProps = StackScreenProps; +type WorkspaceInvoicingDetailsNameProps = PlatformStackScreenProps; function WorkspaceInvoicingDetailsName({route}: WorkspaceInvoicingDetailsNameProps) { const {policyID} = route.params; diff --git a/src/pages/workspace/invoices/WorkspaceInvoicingDetailsWebsite.tsx b/src/pages/workspace/invoices/WorkspaceInvoicingDetailsWebsite.tsx index 0427aef81db3..5c62cb8c4d9b 100644 --- a/src/pages/workspace/invoices/WorkspaceInvoicingDetailsWebsite.tsx +++ b/src/pages/workspace/invoices/WorkspaceInvoicingDetailsWebsite.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import {Str} from 'expensify-common'; import React from 'react'; import {useOnyx} from 'react-native-onyx'; @@ -11,6 +10,7 @@ import TextInput from '@components/TextInput'; import useAutoFocusInput from '@hooks/useAutoFocusInput'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as Url from '@libs/Url'; import * as ValidationUtils from '@libs/ValidationUtils'; import Navigation from '@navigation/Navigation'; @@ -21,7 +21,7 @@ import ONYXKEYS from '@src/ONYXKEYS'; import type SCREENS from '@src/SCREENS'; import INPUT_IDS from '@src/types/form/WorkspaceInvoicesCompanyWebsiteForm'; -type WorkspaceInvoicingDetailsWebsiteProps = StackScreenProps; +type WorkspaceInvoicingDetailsWebsiteProps = PlatformStackScreenProps; function WorkspaceInvoicingDetailsWebsite({route}: WorkspaceInvoicingDetailsWebsiteProps) { const {policyID} = route.params; diff --git a/src/pages/workspace/members/ImportMembersPage.tsx b/src/pages/workspace/members/ImportMembersPage.tsx index 6fff3085b472..05c153356fee 100644 --- a/src/pages/workspace/members/ImportMembersPage.tsx +++ b/src/pages/workspace/members/ImportMembersPage.tsx @@ -1,11 +1,11 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import ImportSpreedsheet from '@components/ImportSpreadsheet'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; -type ImportMembersPageProps = StackScreenProps; +type ImportMembersPageProps = PlatformStackScreenProps; function ImportMembersPage({route}: ImportMembersPageProps) { const policyID = route.params.policyID; diff --git a/src/pages/workspace/members/ImportedMembersPage.tsx b/src/pages/workspace/members/ImportedMembersPage.tsx index 468c64818dba..e0204e40f4fa 100644 --- a/src/pages/workspace/members/ImportedMembersPage.tsx +++ b/src/pages/workspace/members/ImportedMembersPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useState} from 'react'; import {useOnyx} from 'react-native-onyx'; import ConfirmModal from '@components/ConfirmModal'; @@ -11,13 +10,14 @@ import {closeImportPage} from '@libs/actions/ImportSpreadsheet'; import {importPolicyMembers} from '@libs/actions/Policy/Member'; import {findDuplicate, generateColumnNames} from '@libs/importSpreadsheetUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; -type ImportedMembersPageProps = StackScreenProps; +type ImportedMembersPageProps = PlatformStackScreenProps; function ImportedMembersPage({route}: ImportedMembersPageProps) { const {translate} = useLocalize(); diff --git a/src/pages/workspace/members/WorkspaceMemberDetailsPage.tsx b/src/pages/workspace/members/WorkspaceMemberDetailsPage.tsx index 52814f5da23d..cc3b63d084c3 100644 --- a/src/pages/workspace/members/WorkspaceMemberDetailsPage.tsx +++ b/src/pages/workspace/members/WorkspaceMemberDetailsPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useEffect, useMemo, useState} from 'react'; import {View} from 'react-native'; import {useOnyx} from 'react-native-onyx'; @@ -24,6 +23,7 @@ import useStyleUtils from '@hooks/useStyleUtils'; import useThemeStyles from '@hooks/useThemeStyles'; import * as CardUtils from '@libs/CardUtils'; import * as CurrencyUtils from '@libs/CurrencyUtils'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import shouldRenderTransferOwnerButton from '@libs/shouldRenderTransferOwnerButton'; import Navigation from '@navigation/Navigation'; @@ -50,7 +50,7 @@ type WorkspacePolicyOnyxProps = { type WorkspaceMemberDetailsPageProps = Omit & WorkspacePolicyOnyxProps & - StackScreenProps; + PlatformStackScreenProps; function WorkspaceMemberDetailsPage({personalDetails, policy, route}: WorkspaceMemberDetailsPageProps) { const policyID = route.params.policyID; diff --git a/src/pages/workspace/members/WorkspaceMemberNewCardPage.tsx b/src/pages/workspace/members/WorkspaceMemberNewCardPage.tsx index 1b824811d012..bd7e39751d73 100644 --- a/src/pages/workspace/members/WorkspaceMemberNewCardPage.tsx +++ b/src/pages/workspace/members/WorkspaceMemberNewCardPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useState} from 'react'; import ExpensifyCardImage from '@assets/images/expensify-card.svg'; import FormAlertWithSubmitButton from '@components/FormAlertWithSubmitButton'; @@ -11,6 +10,7 @@ import type {ListItem} from '@components/SelectionList/types'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import * as CardUtils from '@libs/CardUtils'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import Navigation from '@navigation/Navigation'; @@ -49,7 +49,7 @@ const mockedData: CardFeeds = { }, }; -type WorkspaceMemberNewCardPageProps = WithPolicyAndFullscreenLoadingProps & StackScreenProps; +type WorkspaceMemberNewCardPageProps = WithPolicyAndFullscreenLoadingProps & PlatformStackScreenProps; function WorkspaceMemberNewCardPage({route, personalDetails}: WorkspaceMemberNewCardPageProps) { const {policyID} = route.params; diff --git a/src/pages/workspace/members/WorkspaceOwnerChangeErrorPage.tsx b/src/pages/workspace/members/WorkspaceOwnerChangeErrorPage.tsx index b24a2a53d0ef..82ec34fd152f 100644 --- a/src/pages/workspace/members/WorkspaceOwnerChangeErrorPage.tsx +++ b/src/pages/workspace/members/WorkspaceOwnerChangeErrorPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback} from 'react'; import {View} from 'react-native'; import Button from '@components/Button'; @@ -11,6 +10,7 @@ import Text from '@components/Text'; import TextLink from '@components/TextLink'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import Navigation from '@navigation/Navigation'; import type {SettingsNavigatorParamList} from '@navigation/types'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; @@ -19,7 +19,7 @@ import CONST from '@src/CONST'; import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; -type WorkspaceOwnerChangeSuccessPageProps = StackScreenProps; +type WorkspaceOwnerChangeSuccessPageProps = PlatformStackScreenProps; function WorkspaceOwnerChangeErrorPage({route}: WorkspaceOwnerChangeSuccessPageProps) { const styles = useThemeStyles(); diff --git a/src/pages/workspace/members/WorkspaceOwnerChangeSuccessPage.tsx b/src/pages/workspace/members/WorkspaceOwnerChangeSuccessPage.tsx index f5c9dd398bf6..fc2f919370e2 100644 --- a/src/pages/workspace/members/WorkspaceOwnerChangeSuccessPage.tsx +++ b/src/pages/workspace/members/WorkspaceOwnerChangeSuccessPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback} from 'react'; import ConfirmationPage from '@components/ConfirmationPage'; import HeaderWithBackButton from '@components/HeaderWithBackButton'; @@ -6,6 +5,7 @@ import LottieAnimations from '@components/LottieAnimations'; import ScreenWrapper from '@components/ScreenWrapper'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import Navigation from '@navigation/Navigation'; import type {SettingsNavigatorParamList} from '@navigation/types'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; @@ -14,7 +14,7 @@ import CONST from '@src/CONST'; import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; -type WorkspaceOwnerChangeSuccessPageProps = StackScreenProps; +type WorkspaceOwnerChangeSuccessPageProps = PlatformStackScreenProps; function WorkspaceOwnerChangeSuccessPage({route}: WorkspaceOwnerChangeSuccessPageProps) { const styles = useThemeStyles(); diff --git a/src/pages/workspace/members/WorkspaceOwnerChangeWrapperPage.tsx b/src/pages/workspace/members/WorkspaceOwnerChangeWrapperPage.tsx index 325e1112ab4b..caea1e4d4eba 100644 --- a/src/pages/workspace/members/WorkspaceOwnerChangeWrapperPage.tsx +++ b/src/pages/workspace/members/WorkspaceOwnerChangeWrapperPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useEffect} from 'react'; import {View} from 'react-native'; import {useOnyx} from 'react-native-onyx'; @@ -8,6 +7,7 @@ import HeaderWithBackButton from '@components/HeaderWithBackButton'; import ScreenWrapper from '@components/ScreenWrapper'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import Navigation from '@navigation/Navigation'; import type {SettingsNavigatorParamList} from '@navigation/types'; import CardAuthenticationModal from '@pages/settings/Subscription/CardAuthenticationModal'; @@ -22,7 +22,7 @@ import type SCREENS from '@src/SCREENS'; import WorkspaceOwnerChangeCheck from './WorkspaceOwnerChangeCheck'; import WorkspaceOwnerPaymentCardForm from './WorkspaceOwnerPaymentCardForm'; -type WorkspaceOwnerChangeWrapperPageProps = WithPolicyOnyxProps & StackScreenProps; +type WorkspaceOwnerChangeWrapperPageProps = WithPolicyOnyxProps & PlatformStackScreenProps; function WorkspaceOwnerChangeWrapperPage({route, policy}: WorkspaceOwnerChangeWrapperPageProps) { const styles = useThemeStyles(); diff --git a/src/pages/workspace/reportFields/CreateReportFieldsPage.tsx b/src/pages/workspace/reportFields/CreateReportFieldsPage.tsx index 8dbd90c9e929..f0b1319196c6 100644 --- a/src/pages/workspace/reportFields/CreateReportFieldsPage.tsx +++ b/src/pages/workspace/reportFields/CreateReportFieldsPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useEffect, useRef} from 'react'; import {View} from 'react-native'; import {useOnyx} from 'react-native-onyx'; @@ -15,6 +14,7 @@ import * as ReportField from '@libs/actions/Policy/ReportField'; import DateUtils from '@libs/DateUtils'; import localeCompare from '@libs/LocaleCompare'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import type {SettingsNavigatorParamList} from '@navigation/types'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; @@ -30,7 +30,7 @@ import INPUT_IDS from '@src/types/form/WorkspaceReportFieldForm'; import InitialListValueSelector from './InitialListValueSelector'; import TypeSelector from './TypeSelector'; -type CreateReportFieldsPageProps = WithPolicyAndFullscreenLoadingProps & StackScreenProps; +type CreateReportFieldsPageProps = WithPolicyAndFullscreenLoadingProps & PlatformStackScreenProps; const defaultDate = DateUtils.extractDate(new Date().toString()); diff --git a/src/pages/workspace/reportFields/ReportFieldsAddListValuePage.tsx b/src/pages/workspace/reportFields/ReportFieldsAddListValuePage.tsx index 0d85fca800bb..b87bc2b2a25c 100644 --- a/src/pages/workspace/reportFields/ReportFieldsAddListValuePage.tsx +++ b/src/pages/workspace/reportFields/ReportFieldsAddListValuePage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback} from 'react'; import {Keyboard} from 'react-native'; import {useOnyx} from 'react-native-onyx'; @@ -13,6 +12,7 @@ import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import * as ReportField from '@libs/actions/Policy/ReportField'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import * as WorkspaceReportFieldUtils from '@libs/WorkspaceReportFieldUtils'; import type {SettingsNavigatorParamList} from '@navigation/types'; @@ -24,7 +24,7 @@ import ONYXKEYS from '@src/ONYXKEYS'; import type SCREENS from '@src/SCREENS'; import INPUT_IDS from '@src/types/form/WorkspaceReportFieldForm'; -type ReportFieldsAddListValuePageProps = WithPolicyAndFullscreenLoadingProps & StackScreenProps; +type ReportFieldsAddListValuePageProps = WithPolicyAndFullscreenLoadingProps & PlatformStackScreenProps; function ReportFieldsAddListValuePage({ policy, diff --git a/src/pages/workspace/reportFields/ReportFieldsEditValuePage.tsx b/src/pages/workspace/reportFields/ReportFieldsEditValuePage.tsx index bfc885000c98..5ce2461bab16 100644 --- a/src/pages/workspace/reportFields/ReportFieldsEditValuePage.tsx +++ b/src/pages/workspace/reportFields/ReportFieldsEditValuePage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback} from 'react'; import {Keyboard} from 'react-native'; import {useOnyx} from 'react-native-onyx'; @@ -13,6 +12,7 @@ import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import * as ReportField from '@libs/actions/Policy/ReportField'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import * as WorkspaceReportFieldUtils from '@libs/WorkspaceReportFieldUtils'; import type {SettingsNavigatorParamList} from '@navigation/types'; @@ -24,7 +24,7 @@ import ONYXKEYS from '@src/ONYXKEYS'; import type SCREENS from '@src/SCREENS'; import INPUT_IDS from '@src/types/form/WorkspaceReportFieldForm'; -type ReportFieldsEditValuePageProps = WithPolicyAndFullscreenLoadingProps & StackScreenProps; +type ReportFieldsEditValuePageProps = WithPolicyAndFullscreenLoadingProps & PlatformStackScreenProps; function ReportFieldsEditValuePage({ policy, diff --git a/src/pages/workspace/reportFields/ReportFieldsInitialValuePage.tsx b/src/pages/workspace/reportFields/ReportFieldsInitialValuePage.tsx index 74ed854a0495..13b1afb7e3d7 100644 --- a/src/pages/workspace/reportFields/ReportFieldsInitialValuePage.tsx +++ b/src/pages/workspace/reportFields/ReportFieldsInitialValuePage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useState} from 'react'; import {View} from 'react-native'; import FormProvider from '@components/Form/FormProvider'; @@ -13,6 +12,7 @@ import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import * as ReportField from '@libs/actions/Policy/ReportField'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import * as ReportUtils from '@libs/ReportUtils'; @@ -29,7 +29,8 @@ import type SCREENS from '@src/SCREENS'; import INPUT_IDS from '@src/types/form/WorkspaceReportFieldForm'; import ReportFieldsInitialListValuePicker from './InitialListValueSelector/ReportFieldsInitialListValuePicker'; -type ReportFieldsInitialValuePageProps = WithPolicyAndFullscreenLoadingProps & StackScreenProps; +type ReportFieldsInitialValuePageProps = WithPolicyAndFullscreenLoadingProps & + PlatformStackScreenProps; function ReportFieldsInitialValuePage({ policy, route: { diff --git a/src/pages/workspace/reportFields/ReportFieldsListValuesPage.tsx b/src/pages/workspace/reportFields/ReportFieldsListValuesPage.tsx index 3cc647b4d681..31057bf41f20 100644 --- a/src/pages/workspace/reportFields/ReportFieldsListValuesPage.tsx +++ b/src/pages/workspace/reportFields/ReportFieldsListValuesPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useMemo, useState} from 'react'; import {View} from 'react-native'; import {useOnyx} from 'react-native-onyx'; @@ -26,6 +25,7 @@ import * as ReportField from '@libs/actions/Policy/ReportField'; import * as DeviceCapabilities from '@libs/DeviceCapabilities'; import localeCompare from '@libs/LocaleCompare'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import * as ReportUtils from '@libs/ReportUtils'; import type {SettingsNavigatorParamList} from '@navigation/types'; @@ -49,7 +49,7 @@ type ValueListItem = ListItem & { orderWeight?: number; }; -type ReportFieldsListValuesPageProps = WithPolicyAndFullscreenLoadingProps & StackScreenProps; +type ReportFieldsListValuesPageProps = WithPolicyAndFullscreenLoadingProps & PlatformStackScreenProps; function ReportFieldsListValuesPage({ policy, diff --git a/src/pages/workspace/reportFields/ReportFieldsSettingsPage.tsx b/src/pages/workspace/reportFields/ReportFieldsSettingsPage.tsx index cc6460d20641..34e3da1e6453 100644 --- a/src/pages/workspace/reportFields/ReportFieldsSettingsPage.tsx +++ b/src/pages/workspace/reportFields/ReportFieldsSettingsPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import {Str} from 'expensify-common'; import React, {useState} from 'react'; import {View} from 'react-native'; @@ -12,6 +11,7 @@ import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import localeCompare from '@libs/LocaleCompare'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import * as ReportUtils from '@libs/ReportUtils'; import * as WorkspaceReportFieldUtils from '@libs/WorkspaceReportFieldUtils'; @@ -25,7 +25,7 @@ import CONST from '@src/CONST'; import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; -type ReportFieldsSettingsPageProps = WithPolicyAndFullscreenLoadingProps & StackScreenProps; +type ReportFieldsSettingsPageProps = WithPolicyAndFullscreenLoadingProps & PlatformStackScreenProps; function ReportFieldsSettingsPage({ policy, diff --git a/src/pages/workspace/reportFields/ReportFieldsValueSettingsPage.tsx b/src/pages/workspace/reportFields/ReportFieldsValueSettingsPage.tsx index 0886f2cd683c..08b94fcc4aee 100644 --- a/src/pages/workspace/reportFields/ReportFieldsValueSettingsPage.tsx +++ b/src/pages/workspace/reportFields/ReportFieldsValueSettingsPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useMemo, useState} from 'react'; import {View} from 'react-native'; import {useOnyx} from 'react-native-onyx'; @@ -15,6 +14,7 @@ import usePrevious from '@hooks/usePrevious'; import useThemeStyles from '@hooks/useThemeStyles'; import * as ReportField from '@libs/actions/Policy/ReportField'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import * as ReportUtils from '@libs/ReportUtils'; import type {SettingsNavigatorParamList} from '@navigation/types'; @@ -27,7 +27,7 @@ import ONYXKEYS from '@src/ONYXKEYS'; import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; -type ReportFieldsValueSettingsPageProps = WithPolicyAndFullscreenLoadingProps & StackScreenProps; +type ReportFieldsValueSettingsPageProps = WithPolicyAndFullscreenLoadingProps & PlatformStackScreenProps; function ReportFieldsValueSettingsPage({ policy, diff --git a/src/pages/workspace/reportFields/WorkspaceReportFieldsPage.tsx b/src/pages/workspace/reportFields/WorkspaceReportFieldsPage.tsx index 603e610b6f5d..ac5cc704a77a 100644 --- a/src/pages/workspace/reportFields/WorkspaceReportFieldsPage.tsx +++ b/src/pages/workspace/reportFields/WorkspaceReportFieldsPage.tsx @@ -1,5 +1,4 @@ import {useFocusEffect, useIsFocused} from '@react-navigation/native'; -import type {StackScreenProps} from '@react-navigation/stack'; import {Str} from 'expensify-common'; import React, {useCallback, useEffect, useMemo, useState} from 'react'; import {ActivityIndicator, View} from 'react-native'; @@ -33,6 +32,7 @@ import {turnOffMobileSelectionMode} from '@libs/actions/MobileSelectionMode'; import * as DeviceCapabilities from '@libs/DeviceCapabilities'; import localeCompare from '@libs/LocaleCompare'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {FullScreenNavigatorParamList} from '@libs/Navigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import * as ReportUtils from '@libs/ReportUtils'; @@ -51,7 +51,7 @@ type ReportFieldForList = ListItem & { orderWeight?: number; }; -type WorkspaceReportFieldsPageProps = StackScreenProps; +type WorkspaceReportFieldsPageProps = PlatformStackScreenProps; function WorkspaceReportFieldsPage({ route: { diff --git a/src/pages/workspace/rules/PolicyRulesPage.tsx b/src/pages/workspace/rules/PolicyRulesPage.tsx index 1fce2fb7bfcf..747a98660037 100644 --- a/src/pages/workspace/rules/PolicyRulesPage.tsx +++ b/src/pages/workspace/rules/PolicyRulesPage.tsx @@ -1,10 +1,10 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import {View} from 'react-native'; import useLocalize from '@hooks/useLocalize'; import usePermissions from '@hooks/usePermissions'; import useResponsiveLayout from '@hooks/useResponsiveLayout'; import useThemeStyles from '@hooks/useThemeStyles'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {FullScreenNavigatorParamList} from '@libs/Navigation/types'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; import WorkspacePageWithSections from '@pages/workspace/WorkspacePageWithSections'; @@ -14,7 +14,7 @@ import type SCREENS from '@src/SCREENS'; import ExpenseReportRulesSection from './ExpenseReportRulesSection'; import IndividualExpenseRulesSection from './IndividualExpenseRulesSection'; -type PolicyRulesPageProps = StackScreenProps; +type PolicyRulesPageProps = PlatformStackScreenProps; function PolicyRulesPage({route}: PolicyRulesPageProps) { const {translate} = useLocalize(); diff --git a/src/pages/workspace/rules/RulesAutoApproveReportsUnderPage.tsx b/src/pages/workspace/rules/RulesAutoApproveReportsUnderPage.tsx index 490db9a80d42..e5f91d0987c2 100644 --- a/src/pages/workspace/rules/RulesAutoApproveReportsUnderPage.tsx +++ b/src/pages/workspace/rules/RulesAutoApproveReportsUnderPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import {View} from 'react-native'; import AmountForm from '@components/AmountForm'; @@ -13,6 +12,7 @@ import usePolicy from '@hooks/usePolicy'; import useThemeStyles from '@hooks/useThemeStyles'; import * as CurrencyUtils from '@libs/CurrencyUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; @@ -22,7 +22,7 @@ import ONYXKEYS from '@src/ONYXKEYS'; import type SCREENS from '@src/SCREENS'; import INPUT_IDS from '@src/types/form/RulesAutoApproveReportsUnderModalForm'; -type RulesAutoApproveReportsUnderPageProps = StackScreenProps; +type RulesAutoApproveReportsUnderPageProps = PlatformStackScreenProps; function RulesAutoApproveReportsUnderPage({route}: RulesAutoApproveReportsUnderPageProps) { const {policyID} = route.params; diff --git a/src/pages/workspace/rules/RulesAutoPayReportsUnderPage.tsx b/src/pages/workspace/rules/RulesAutoPayReportsUnderPage.tsx index 5218ab1f988b..5f636668ff4b 100644 --- a/src/pages/workspace/rules/RulesAutoPayReportsUnderPage.tsx +++ b/src/pages/workspace/rules/RulesAutoPayReportsUnderPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import {View} from 'react-native'; import AmountForm from '@components/AmountForm'; @@ -14,6 +13,7 @@ import usePolicy from '@hooks/usePolicy'; import useThemeStyles from '@hooks/useThemeStyles'; import * as CurrencyUtils from '@libs/CurrencyUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; import * as PolicyActions from '@userActions/Policy/Policy'; @@ -22,7 +22,7 @@ import ONYXKEYS from '@src/ONYXKEYS'; import type SCREENS from '@src/SCREENS'; import INPUT_IDS from '@src/types/form/RulesAutoPayReportsUnderModalForm'; -type RulesAutoPayReportsUnderPageProps = StackScreenProps; +type RulesAutoPayReportsUnderPageProps = PlatformStackScreenProps; function RulesAutoPayReportsUnderPage({route}: RulesAutoPayReportsUnderPageProps) { const policyID = route?.params?.policyID ?? '-1'; diff --git a/src/pages/workspace/rules/RulesBillableDefaultPage.tsx b/src/pages/workspace/rules/RulesBillableDefaultPage.tsx index 900007f9a573..2b9d42ed748c 100644 --- a/src/pages/workspace/rules/RulesBillableDefaultPage.tsx +++ b/src/pages/workspace/rules/RulesBillableDefaultPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import HeaderWithBackButton from '@components/HeaderWithBackButton'; import ScreenWrapper from '@components/ScreenWrapper'; @@ -10,6 +9,7 @@ import useLocalize from '@hooks/useLocalize'; import usePolicy from '@hooks/usePolicy'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; import * as Policy from '@userActions/Policy/Policy'; @@ -17,7 +17,7 @@ import CONST from '@src/CONST'; import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; -type RulesBillableDefaultPageProps = StackScreenProps; +type RulesBillableDefaultPageProps = PlatformStackScreenProps; function RulesBillableDefaultPage({ route: { diff --git a/src/pages/workspace/rules/RulesCustomNamePage.tsx b/src/pages/workspace/rules/RulesCustomNamePage.tsx index 4a142c01e1da..1b6ac59977be 100644 --- a/src/pages/workspace/rules/RulesCustomNamePage.tsx +++ b/src/pages/workspace/rules/RulesCustomNamePage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import {View} from 'react-native'; import BulletList from '@components/BulletList'; @@ -15,6 +14,7 @@ import useLocalize from '@hooks/useLocalize'; import usePolicy from '@hooks/usePolicy'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; import * as PolicyActions from '@userActions/Policy/Policy'; @@ -23,7 +23,7 @@ import ONYXKEYS from '@src/ONYXKEYS'; import type SCREENS from '@src/SCREENS'; import INPUT_IDS from '@src/types/form/RulesCustomNameModalForm'; -type RulesCustomNamePageProps = StackScreenProps; +type RulesCustomNamePageProps = PlatformStackScreenProps; function RulesCustomNamePage({route}: RulesCustomNamePageProps) { const policyID = route?.params?.policyID ?? '-1'; diff --git a/src/pages/workspace/rules/RulesMaxExpenseAgePage.tsx b/src/pages/workspace/rules/RulesMaxExpenseAgePage.tsx index 991c1f252cad..6cc38e27ae39 100644 --- a/src/pages/workspace/rules/RulesMaxExpenseAgePage.tsx +++ b/src/pages/workspace/rules/RulesMaxExpenseAgePage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useState} from 'react'; import {View} from 'react-native'; import FormProvider from '@components/Form/FormProvider'; @@ -12,6 +11,7 @@ import useLocalize from '@hooks/useLocalize'; import usePolicy from '@hooks/usePolicy'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; import * as PolicyActions from '@userActions/Policy/Policy'; @@ -20,7 +20,7 @@ import ONYXKEYS from '@src/ONYXKEYS'; import type SCREENS from '@src/SCREENS'; import INPUT_IDS from '@src/types/form/RulesMaxExpenseAgeForm'; -type RulesMaxExpenseAgePageProps = StackScreenProps; +type RulesMaxExpenseAgePageProps = PlatformStackScreenProps; function RulesMaxExpenseAgePage({ route: { diff --git a/src/pages/workspace/rules/RulesMaxExpenseAmountPage.tsx b/src/pages/workspace/rules/RulesMaxExpenseAmountPage.tsx index dba43789bd34..5ae0a51e5bca 100644 --- a/src/pages/workspace/rules/RulesMaxExpenseAmountPage.tsx +++ b/src/pages/workspace/rules/RulesMaxExpenseAmountPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import {View} from 'react-native'; import AmountForm from '@components/AmountForm'; @@ -13,6 +12,7 @@ import usePolicy from '@hooks/usePolicy'; import useThemeStyles from '@hooks/useThemeStyles'; import * as CurrencyUtils from '@libs/CurrencyUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; import * as PolicyActions from '@userActions/Policy/Policy'; @@ -21,7 +21,7 @@ import ONYXKEYS from '@src/ONYXKEYS'; import type SCREENS from '@src/SCREENS'; import INPUT_IDS from '@src/types/form/RulesMaxExpenseAmountForm'; -type RulesMaxExpenseAmountPageProps = StackScreenProps; +type RulesMaxExpenseAmountPageProps = PlatformStackScreenProps; function RulesMaxExpenseAmountPage({ route: { diff --git a/src/pages/workspace/rules/RulesRandomReportAuditPage.tsx b/src/pages/workspace/rules/RulesRandomReportAuditPage.tsx index ad5e24191ce9..0c1d6d599948 100644 --- a/src/pages/workspace/rules/RulesRandomReportAuditPage.tsx +++ b/src/pages/workspace/rules/RulesRandomReportAuditPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import {View} from 'react-native'; import FormProvider from '@components/Form/FormProvider'; @@ -12,6 +11,7 @@ import useLocalize from '@hooks/useLocalize'; import usePolicy from '@hooks/usePolicy'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; @@ -21,7 +21,7 @@ import ONYXKEYS from '@src/ONYXKEYS'; import type SCREENS from '@src/SCREENS'; import INPUT_IDS from '@src/types/form/RulesRandomReportAuditModalForm'; -type RulesRandomReportAuditPageProps = StackScreenProps; +type RulesRandomReportAuditPageProps = PlatformStackScreenProps; function RulesRandomReportAuditPage({route}: RulesRandomReportAuditPageProps) { const policyID = route?.params?.policyID ?? '-1'; diff --git a/src/pages/workspace/rules/RulesReceiptRequiredAmountPage.tsx b/src/pages/workspace/rules/RulesReceiptRequiredAmountPage.tsx index 9e7098d45502..96bd6f7cef8a 100644 --- a/src/pages/workspace/rules/RulesReceiptRequiredAmountPage.tsx +++ b/src/pages/workspace/rules/RulesReceiptRequiredAmountPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import {View} from 'react-native'; import AmountForm from '@components/AmountForm'; @@ -13,6 +12,7 @@ import usePolicy from '@hooks/usePolicy'; import useThemeStyles from '@hooks/useThemeStyles'; import * as CurrencyUtils from '@libs/CurrencyUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; import * as PolicyActions from '@userActions/Policy/Policy'; @@ -21,7 +21,7 @@ import ONYXKEYS from '@src/ONYXKEYS'; import type SCREENS from '@src/SCREENS'; import INPUT_IDS from '@src/types/form/RulesRequiredReceiptAmountForm'; -type RulesReceiptRequiredAmountPageProps = StackScreenProps; +type RulesReceiptRequiredAmountPageProps = PlatformStackScreenProps; function RulesReceiptRequiredAmountPage({ route: { diff --git a/src/pages/workspace/tags/EditTagPage.tsx b/src/pages/workspace/tags/EditTagPage.tsx index c8cef174dbdb..d79225ce665c 100644 --- a/src/pages/workspace/tags/EditTagPage.tsx +++ b/src/pages/workspace/tags/EditTagPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback} from 'react'; import {Keyboard} from 'react-native'; import {withOnyx} from 'react-native-onyx'; @@ -13,6 +12,7 @@ import useAutoFocusInput from '@hooks/useAutoFocusInput'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import * as ValidationUtils from '@libs/ValidationUtils'; import type {SettingsNavigatorParamList} from '@navigation/types'; @@ -29,7 +29,7 @@ type EditTagPageOnyxProps = { policyTags: OnyxEntry; }; -type EditTagPageProps = EditTagPageOnyxProps & StackScreenProps; +type EditTagPageProps = EditTagPageOnyxProps & PlatformStackScreenProps; function EditTagPage({route, policyTags}: EditTagPageProps) { const styles = useThemeStyles(); diff --git a/src/pages/workspace/tags/ImportTagsPage.tsx b/src/pages/workspace/tags/ImportTagsPage.tsx index 0dd7c01f0af3..9f7e1af0a9e5 100644 --- a/src/pages/workspace/tags/ImportTagsPage.tsx +++ b/src/pages/workspace/tags/ImportTagsPage.tsx @@ -1,11 +1,11 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import ImportSpreedsheet from '@components/ImportSpreadsheet'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; -type ImportTagsPageProps = StackScreenProps; +type ImportTagsPageProps = PlatformStackScreenProps; function ImportTagsPage({route}: ImportTagsPageProps) { const policyID = route.params.policyID; diff --git a/src/pages/workspace/tags/ImportedTagsPage.tsx b/src/pages/workspace/tags/ImportedTagsPage.tsx index b2e95edc43a4..dd68f8f7e5f9 100644 --- a/src/pages/workspace/tags/ImportedTagsPage.tsx +++ b/src/pages/workspace/tags/ImportedTagsPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useMemo, useState} from 'react'; import {useOnyx} from 'react-native-onyx'; import ConfirmModal from '@components/ConfirmModal'; @@ -12,6 +11,7 @@ import {closeImportPage} from '@libs/actions/ImportSpreadsheet'; import {importPolicyTags} from '@libs/actions/Policy/Tag'; import {findDuplicate, generateColumnNames} from '@libs/importSpreadsheetUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import {isControlPolicy} from '@libs/PolicyUtils'; @@ -21,7 +21,7 @@ import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; import type {Errors} from '@src/types/onyx/OnyxCommon'; -type ImportedTagsPageProps = StackScreenProps; +type ImportedTagsPageProps = PlatformStackScreenProps; function ImportedTagsPage({route}: ImportedTagsPageProps) { const {translate} = useLocalize(); diff --git a/src/pages/workspace/tags/TagApproverPage.tsx b/src/pages/workspace/tags/TagApproverPage.tsx index 874754b2cf4b..b6ea97c4d1be 100644 --- a/src/pages/workspace/tags/TagApproverPage.tsx +++ b/src/pages/workspace/tags/TagApproverPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import HeaderWithBackButton from '@components/HeaderWithBackButton'; import ScreenWrapper from '@components/ScreenWrapper'; @@ -6,6 +5,7 @@ import WorkspaceMembersSelectionList from '@components/WorkspaceMembersSelection import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import type {SettingsNavigatorParamList} from '@navigation/types'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; @@ -13,7 +13,7 @@ import * as Tag from '@userActions/Policy/Tag'; import CONST from '@src/CONST'; import type SCREENS from '@src/SCREENS'; -type TagApproverPageProps = StackScreenProps; +type TagApproverPageProps = PlatformStackScreenProps; function TagApproverPage({route}: TagApproverPageProps) { const {policyID, tagName} = route.params; diff --git a/src/pages/workspace/tags/TagGLCodePage.tsx b/src/pages/workspace/tags/TagGLCodePage.tsx index 8360108be362..3bd20f7dbc69 100644 --- a/src/pages/workspace/tags/TagGLCodePage.tsx +++ b/src/pages/workspace/tags/TagGLCodePage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback} from 'react'; import {useOnyx} from 'react-native-onyx'; import FormProvider from '@components/Form/FormProvider'; @@ -12,6 +11,7 @@ import useLocalize from '@hooks/useLocalize'; import usePolicy from '@hooks/usePolicy'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import type {SettingsNavigatorParamList} from '@navigation/types'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; @@ -22,7 +22,7 @@ import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; import INPUT_IDS from '@src/types/form/WorkspaceTagForm'; -type EditTagGLCodePageProps = StackScreenProps; +type EditTagGLCodePageProps = PlatformStackScreenProps; function TagGLCodePage({route}: EditTagGLCodePageProps) { const styles = useThemeStyles(); diff --git a/src/pages/workspace/tags/TagSettingsPage.tsx b/src/pages/workspace/tags/TagSettingsPage.tsx index f5599ed4c269..40f3e5048404 100644 --- a/src/pages/workspace/tags/TagSettingsPage.tsx +++ b/src/pages/workspace/tags/TagSettingsPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useEffect, useMemo} from 'react'; import {View} from 'react-native'; import {useOnyx} from 'react-native-onyx'; @@ -17,6 +16,7 @@ import usePolicy from '@hooks/usePolicy'; import useThemeStyles from '@hooks/useThemeStyles'; import * as ErrorUtils from '@libs/ErrorUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import type {SettingsNavigatorParamList} from '@navigation/types'; import NotFoundPage from '@pages/ErrorPage/NotFoundPage'; @@ -28,7 +28,7 @@ import ONYXKEYS from '@src/ONYXKEYS'; import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; -type TagSettingsPageProps = StackScreenProps; +type TagSettingsPageProps = PlatformStackScreenProps; function TagSettingsPage({route, navigation}: TagSettingsPageProps) { const [policyTags] = useOnyx(`${ONYXKEYS.COLLECTION.POLICY_TAGS}${route.params.policyID}`); diff --git a/src/pages/workspace/tags/WorkspaceCreateTagPage.tsx b/src/pages/workspace/tags/WorkspaceCreateTagPage.tsx index cde6a55c5258..b3c9ac10cf2c 100644 --- a/src/pages/workspace/tags/WorkspaceCreateTagPage.tsx +++ b/src/pages/workspace/tags/WorkspaceCreateTagPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback} from 'react'; import {Keyboard} from 'react-native'; import {withOnyx} from 'react-native-onyx'; @@ -14,6 +13,7 @@ import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import * as ErrorUtils from '@libs/ErrorUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import * as ValidationUtils from '@libs/ValidationUtils'; import type {SettingsNavigatorParamList} from '@navigation/types'; @@ -30,7 +30,7 @@ type WorkspaceCreateTagPageOnyxProps = { policyTags: OnyxEntry; }; -type CreateTagPageProps = WorkspaceCreateTagPageOnyxProps & StackScreenProps; +type CreateTagPageProps = WorkspaceCreateTagPageOnyxProps & PlatformStackScreenProps; function CreateTagPage({route, policyTags}: CreateTagPageProps) { const styles = useThemeStyles(); diff --git a/src/pages/workspace/tags/WorkspaceEditTagsPage.tsx b/src/pages/workspace/tags/WorkspaceEditTagsPage.tsx index d63799169ca8..019f840f9ab5 100644 --- a/src/pages/workspace/tags/WorkspaceEditTagsPage.tsx +++ b/src/pages/workspace/tags/WorkspaceEditTagsPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useMemo} from 'react'; import {View} from 'react-native'; import {withOnyx} from 'react-native-onyx'; @@ -14,6 +13,7 @@ import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import * as Tag from '@libs/actions/Policy/Tag'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import type {SettingsNavigatorParamList} from '@navigation/types'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; @@ -28,7 +28,7 @@ type WorkspaceEditTagsPageOnyxProps = { policyTags: OnyxEntry; }; -type WorkspaceEditTagsPageProps = WorkspaceEditTagsPageOnyxProps & StackScreenProps; +type WorkspaceEditTagsPageProps = WorkspaceEditTagsPageOnyxProps & PlatformStackScreenProps; function WorkspaceEditTagsPage({route, policyTags}: WorkspaceEditTagsPageProps) { const styles = useThemeStyles(); diff --git a/src/pages/workspace/tags/WorkspaceTagsPage.tsx b/src/pages/workspace/tags/WorkspaceTagsPage.tsx index 115944ae45c0..181f2a979f3c 100644 --- a/src/pages/workspace/tags/WorkspaceTagsPage.tsx +++ b/src/pages/workspace/tags/WorkspaceTagsPage.tsx @@ -1,5 +1,4 @@ import {useFocusEffect, useIsFocused} from '@react-navigation/native'; -import type {StackScreenProps} from '@react-navigation/stack'; import lodashSortBy from 'lodash/sortBy'; import React, {useCallback, useEffect, useMemo, useState} from 'react'; import {ActivityIndicator, View} from 'react-native'; @@ -35,6 +34,7 @@ import {turnOffMobileSelectionMode} from '@libs/actions/MobileSelectionMode'; import * as DeviceCapabilities from '@libs/DeviceCapabilities'; import localeCompare from '@libs/LocaleCompare'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {FullScreenNavigatorParamList} from '@libs/Navigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; @@ -48,7 +48,7 @@ import type {PendingAction} from '@src/types/onyx/OnyxCommon'; import type DeepValueOf from '@src/types/utils/DeepValueOf'; import type {PolicyTag, PolicyTagList, TagListItem} from './types'; -type WorkspaceTagsPageProps = StackScreenProps; +type WorkspaceTagsPageProps = PlatformStackScreenProps; function WorkspaceTagsPage({route}: WorkspaceTagsPageProps) { const {shouldUseNarrowLayout, isSmallScreenWidth} = useResponsiveLayout(); diff --git a/src/pages/workspace/tags/WorkspaceTagsSettingsPage.tsx b/src/pages/workspace/tags/WorkspaceTagsSettingsPage.tsx index b5b527dc4dfa..5d99c2f0b375 100644 --- a/src/pages/workspace/tags/WorkspaceTagsSettingsPage.tsx +++ b/src/pages/workspace/tags/WorkspaceTagsSettingsPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useMemo} from 'react'; import {View} from 'react-native'; import type {OnyxEntry} from 'react-native-onyx'; @@ -16,6 +15,7 @@ import usePermissions from '@hooks/usePermissions'; import useThemeStyles from '@hooks/useThemeStyles'; import * as Tag from '@libs/actions/Policy/Tag'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as OptionsListUtils from '@libs/OptionsListUtils'; import * as PolicyUtils from '@libs/PolicyUtils'; import type {SettingsNavigatorParamList} from '@navigation/types'; @@ -31,7 +31,7 @@ type WorkspaceTagsSettingsPageOnyxProps = { /** Collection of tags attached to a policy */ policyTags: OnyxEntry; }; -type WorkspaceTagsSettingsPageProps = WorkspaceTagsSettingsPageOnyxProps & StackScreenProps; +type WorkspaceTagsSettingsPageProps = WorkspaceTagsSettingsPageOnyxProps & PlatformStackScreenProps; /** * The pending state might be set by either setPolicyBillableMode or disableWorkspaceBillableExpenses. diff --git a/src/pages/workspace/tags/WorkspaceViewTagsPage.tsx b/src/pages/workspace/tags/WorkspaceViewTagsPage.tsx index a01707a04740..77599165674c 100644 --- a/src/pages/workspace/tags/WorkspaceViewTagsPage.tsx +++ b/src/pages/workspace/tags/WorkspaceViewTagsPage.tsx @@ -1,5 +1,4 @@ import {useIsFocused} from '@react-navigation/native'; -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react'; import {ActivityIndicator, View} from 'react-native'; import {useOnyx} from 'react-native-onyx'; @@ -27,6 +26,7 @@ import {turnOffMobileSelectionMode} from '@libs/actions/MobileSelectionMode'; import * as DeviceCapabilities from '@libs/DeviceCapabilities'; import localeCompare from '@libs/LocaleCompare'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import type {SettingsNavigatorParamList} from '@navigation/types'; import NotFoundPage from '@pages/ErrorPage/NotFoundPage'; @@ -40,7 +40,7 @@ import type SCREENS from '@src/SCREENS'; import type DeepValueOf from '@src/types/utils/DeepValueOf'; import type {TagListItem} from './types'; -type WorkspaceViewTagsProps = StackScreenProps; +type WorkspaceViewTagsProps = PlatformStackScreenProps; function WorkspaceViewTagsPage({route}: WorkspaceViewTagsProps) { const {shouldUseNarrowLayout, isSmallScreenWidth} = useResponsiveLayout(); diff --git a/src/pages/workspace/taxes/NamePage.tsx b/src/pages/workspace/taxes/NamePage.tsx index 0fb495a04574..cc3a22fa4ef9 100644 --- a/src/pages/workspace/taxes/NamePage.tsx +++ b/src/pages/workspace/taxes/NamePage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useState} from 'react'; import {View} from 'react-native'; import FormProvider from '@components/Form/FormProvider'; @@ -12,6 +11,7 @@ import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import {renamePolicyTax, validateTaxName} from '@libs/actions/TaxRate'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import Parser from '@libs/Parser'; import * as PolicyUtils from '@libs/PolicyUtils'; @@ -25,7 +25,7 @@ import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; import INPUT_IDS from '@src/types/form/WorkspaceTaxNameForm'; -type NamePageProps = WithPolicyAndFullscreenLoadingProps & StackScreenProps; +type NamePageProps = WithPolicyAndFullscreenLoadingProps & PlatformStackScreenProps; function NamePage({ route: { diff --git a/src/pages/workspace/taxes/ValuePage.tsx b/src/pages/workspace/taxes/ValuePage.tsx index 5b724d625e5b..1da36229a7be 100644 --- a/src/pages/workspace/taxes/ValuePage.tsx +++ b/src/pages/workspace/taxes/ValuePage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback} from 'react'; import AmountForm from '@components/AmountForm'; import FormProvider from '@components/Form/FormProvider'; @@ -12,6 +11,7 @@ import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import {updatePolicyTaxValue, validateTaxValue} from '@libs/actions/TaxRate'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import NotFoundPage from '@pages/ErrorPage/NotFoundPage'; @@ -24,7 +24,7 @@ import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; import INPUT_IDS from '@src/types/form/WorkspaceTaxValueForm'; -type ValuePageProps = WithPolicyAndFullscreenLoadingProps & StackScreenProps; +type ValuePageProps = WithPolicyAndFullscreenLoadingProps & PlatformStackScreenProps; function ValuePage({ route: { diff --git a/src/pages/workspace/taxes/WorkspaceCreateTaxPage.tsx b/src/pages/workspace/taxes/WorkspaceCreateTaxPage.tsx index 4a31f7d16b1e..4dddcb42265d 100644 --- a/src/pages/workspace/taxes/WorkspaceCreateTaxPage.tsx +++ b/src/pages/workspace/taxes/WorkspaceCreateTaxPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback} from 'react'; import {View} from 'react-native'; import {useOnyx} from 'react-native-onyx'; @@ -15,6 +14,7 @@ import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import {createPolicyTax, getNextTaxCode, getTaxValueWithPercentage, validateTaxName, validateTaxValue} from '@libs/actions/TaxRate'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; @@ -26,7 +26,7 @@ import type SCREENS from '@src/SCREENS'; import INPUT_IDS from '@src/types/form/WorkspaceNewTaxForm'; import type {TaxRate} from '@src/types/onyx'; -type WorkspaceCreateTaxPageProps = WithPolicyAndFullscreenLoadingProps & StackScreenProps; +type WorkspaceCreateTaxPageProps = WithPolicyAndFullscreenLoadingProps & PlatformStackScreenProps; function WorkspaceCreateTaxPage({ policy, diff --git a/src/pages/workspace/taxes/WorkspaceEditTaxPage.tsx b/src/pages/workspace/taxes/WorkspaceEditTaxPage.tsx index 0f50ed8fe0b8..7c4eb45bb9a0 100644 --- a/src/pages/workspace/taxes/WorkspaceEditTaxPage.tsx +++ b/src/pages/workspace/taxes/WorkspaceEditTaxPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useEffect, useState} from 'react'; import {View} from 'react-native'; import ConfirmModal from '@components/ConfirmModal'; @@ -15,6 +14,7 @@ import useThemeStyles from '@hooks/useThemeStyles'; import {clearTaxRateFieldError, deletePolicyTaxes, setPolicyTaxesEnabled} from '@libs/actions/TaxRate'; import * as ErrorUtils from '@libs/ErrorUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import NotFoundPage from '@pages/ErrorPage/NotFoundPage'; @@ -25,7 +25,7 @@ import CONST from '@src/CONST'; import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; -type WorkspaceEditTaxPageBaseProps = WithPolicyAndFullscreenLoadingProps & StackScreenProps; +type WorkspaceEditTaxPageBaseProps = WithPolicyAndFullscreenLoadingProps & PlatformStackScreenProps; function WorkspaceEditTaxPage({ route: { diff --git a/src/pages/workspace/taxes/WorkspaceTaxCodePage.tsx b/src/pages/workspace/taxes/WorkspaceTaxCodePage.tsx index e9005a8a58f2..05536a4257e4 100644 --- a/src/pages/workspace/taxes/WorkspaceTaxCodePage.tsx +++ b/src/pages/workspace/taxes/WorkspaceTaxCodePage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback} from 'react'; import {View} from 'react-native'; import FormProvider from '@components/Form/FormProvider'; @@ -13,6 +12,7 @@ import usePolicy from '@hooks/usePolicy'; import useThemeStyles from '@hooks/useThemeStyles'; import {setPolicyTaxCode, validateTaxCode} from '@libs/actions/TaxRate'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; import CONST from '@src/CONST'; @@ -21,7 +21,7 @@ import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; import INPUT_IDS from '@src/types/form/WorkspaceTaxCodeForm'; -type WorkspaceTaxCodePageProps = StackScreenProps; +type WorkspaceTaxCodePageProps = PlatformStackScreenProps; function WorkspaceTaxCodePage({route}: WorkspaceTaxCodePageProps) { const styles = useThemeStyles(); diff --git a/src/pages/workspace/taxes/WorkspaceTaxesPage.tsx b/src/pages/workspace/taxes/WorkspaceTaxesPage.tsx index 31e4a5e093eb..df056ec85d1c 100644 --- a/src/pages/workspace/taxes/WorkspaceTaxesPage.tsx +++ b/src/pages/workspace/taxes/WorkspaceTaxesPage.tsx @@ -1,5 +1,4 @@ import {useFocusEffect, useIsFocused} from '@react-navigation/native'; -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useEffect, useMemo, useState} from 'react'; import {ActivityIndicator, View} from 'react-native'; import Button from '@components/Button'; @@ -28,6 +27,7 @@ import {clearTaxRateError, deletePolicyTaxes, setPolicyTaxesEnabled} from '@libs import * as DeviceCapabilities from '@libs/DeviceCapabilities'; import * as ErrorUtils from '@libs/ErrorUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import type {FullScreenNavigatorParamList} from '@navigation/types'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; @@ -39,7 +39,7 @@ import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; import type {TaxRate} from '@src/types/onyx'; -type WorkspaceTaxesPageProps = WithPolicyAndFullscreenLoadingProps & StackScreenProps; +type WorkspaceTaxesPageProps = WithPolicyAndFullscreenLoadingProps & PlatformStackScreenProps; function WorkspaceTaxesPage({ policy, diff --git a/src/pages/workspace/taxes/WorkspaceTaxesSettingsCustomTaxName.tsx b/src/pages/workspace/taxes/WorkspaceTaxesSettingsCustomTaxName.tsx index f24a388011ab..88edc1f25797 100644 --- a/src/pages/workspace/taxes/WorkspaceTaxesSettingsCustomTaxName.tsx +++ b/src/pages/workspace/taxes/WorkspaceTaxesSettingsCustomTaxName.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback} from 'react'; import {View} from 'react-native'; import FormProvider from '@components/Form/FormProvider'; @@ -11,6 +10,7 @@ import useAutoFocusInput from '@hooks/useAutoFocusInput'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import * as ValidationUtils from '@libs/ValidationUtils'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; @@ -24,7 +24,8 @@ import type SCREENS from '@src/SCREENS'; import INPUT_IDS from '@src/types/form/WorkspaceTaxCustomName'; import type {WorkspaceTaxCustomName} from '@src/types/form/WorkspaceTaxCustomName'; -type WorkspaceTaxesSettingsCustomTaxNameProps = WithPolicyAndFullscreenLoadingProps & StackScreenProps; +type WorkspaceTaxesSettingsCustomTaxNameProps = WithPolicyAndFullscreenLoadingProps & + PlatformStackScreenProps; function WorkspaceTaxesSettingsCustomTaxName({ route: { diff --git a/src/pages/workspace/taxes/WorkspaceTaxesSettingsForeignCurrency.tsx b/src/pages/workspace/taxes/WorkspaceTaxesSettingsForeignCurrency.tsx index 2e40667c1daf..c481b5f5adee 100644 --- a/src/pages/workspace/taxes/WorkspaceTaxesSettingsForeignCurrency.tsx +++ b/src/pages/workspace/taxes/WorkspaceTaxesSettingsForeignCurrency.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import {View} from 'react-native'; import HeaderWithBackButton from '@components/HeaderWithBackButton'; @@ -7,6 +6,7 @@ import TaxPicker from '@components/TaxPicker'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import type * as OptionsListUtils from '@libs/OptionsListUtils'; import * as TransactionUtils from '@libs/TransactionUtils'; @@ -19,7 +19,7 @@ import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; type WorkspaceTaxesSettingsForeignCurrencyProps = WithPolicyAndFullscreenLoadingProps & - StackScreenProps; + PlatformStackScreenProps; function WorkspaceTaxesSettingsForeignCurrency({ route: { params: {policyID}, diff --git a/src/pages/workspace/taxes/WorkspaceTaxesSettingsPage.tsx b/src/pages/workspace/taxes/WorkspaceTaxesSettingsPage.tsx index bfd688facc5f..4de7c320cd2f 100644 --- a/src/pages/workspace/taxes/WorkspaceTaxesSettingsPage.tsx +++ b/src/pages/workspace/taxes/WorkspaceTaxesSettingsPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useMemo} from 'react'; import {View} from 'react-native'; import HeaderWithBackButton from '@components/HeaderWithBackButton'; @@ -9,6 +8,7 @@ import ScrollView from '@components/ScrollView'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; import withPolicyAndFullscreenLoading from '@pages/workspace/withPolicyAndFullscreenLoading'; @@ -17,7 +17,7 @@ import CONST from '@src/CONST'; import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; -type WorkspaceTaxesSettingsPageProps = WithPolicyAndFullscreenLoadingProps & StackScreenProps; +type WorkspaceTaxesSettingsPageProps = WithPolicyAndFullscreenLoadingProps & PlatformStackScreenProps; function WorkspaceTaxesSettingsPage({ route: { diff --git a/src/pages/workspace/taxes/WorkspaceTaxesSettingsWorkspaceCurrency.tsx b/src/pages/workspace/taxes/WorkspaceTaxesSettingsWorkspaceCurrency.tsx index c46efe3fd243..81b81b7cba4c 100644 --- a/src/pages/workspace/taxes/WorkspaceTaxesSettingsWorkspaceCurrency.tsx +++ b/src/pages/workspace/taxes/WorkspaceTaxesSettingsWorkspaceCurrency.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import {View} from 'react-native'; import HeaderWithBackButton from '@components/HeaderWithBackButton'; @@ -7,6 +6,7 @@ import TaxPicker from '@components/TaxPicker'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import type * as OptionsListUtils from '@libs/OptionsListUtils'; import * as TransactionUtils from '@libs/TransactionUtils'; @@ -19,7 +19,7 @@ import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; type WorkspaceTaxesSettingsWorkspaceCurrencyProps = WithPolicyAndFullscreenLoadingProps & - StackScreenProps; + PlatformStackScreenProps; function WorkspaceTaxesSettingsWorkspaceCurrency({ route: { diff --git a/src/pages/workspace/upgrade/WorkspaceUpgradePage.tsx b/src/pages/workspace/upgrade/WorkspaceUpgradePage.tsx index a8c9705663d4..0522aa59162f 100644 --- a/src/pages/workspace/upgrade/WorkspaceUpgradePage.tsx +++ b/src/pages/workspace/upgrade/WorkspaceUpgradePage.tsx @@ -1,5 +1,4 @@ import {useNavigation} from '@react-navigation/native'; -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useEffect} from 'react'; import {useOnyx} from 'react-native-onyx'; import HeaderWithBackButton from '@components/HeaderWithBackButton'; @@ -8,6 +7,7 @@ import useLocalize from '@hooks/useLocalize'; import useNetwork from '@hooks/useNetwork'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import NotFoundPage from '@pages/ErrorPage/NotFoundPage'; @@ -18,7 +18,7 @@ import type SCREENS from '@src/SCREENS'; import UpgradeConfirmation from './UpgradeConfirmation'; import UpgradeIntro from './UpgradeIntro'; -type WorkspaceUpgradePageProps = StackScreenProps; +type WorkspaceUpgradePageProps = PlatformStackScreenProps; function WorkspaceUpgradePage({route}: WorkspaceUpgradePageProps) { const navigation = useNavigation(); diff --git a/src/pages/workspace/withPolicy.tsx b/src/pages/workspace/withPolicy.tsx index e1fdd2b29687..ab2938a463ab 100644 --- a/src/pages/workspace/withPolicy.tsx +++ b/src/pages/workspace/withPolicy.tsx @@ -1,8 +1,8 @@ -import type {RouteProp} from '@react-navigation/native'; import type {ComponentType, ForwardedRef, RefAttributes} from 'react'; import React, {forwardRef} from 'react'; import type {OnyxEntry} from 'react-native-onyx'; import {useOnyx} from 'react-native-onyx'; +import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types'; import type {AuthScreensParamList, BottomTabNavigatorParamList, FullScreenNavigatorParamList, ReimbursementAccountNavigatorParamList, SettingsNavigatorParamList} from '@navigation/types'; import * as Policy from '@userActions/Policy/Policy'; import ONYXKEYS from '@src/ONYXKEYS'; @@ -12,7 +12,7 @@ import isLoadingOnyxValue from '@src/types/utils/isLoadingOnyxValue'; type NavigatorsParamList = BottomTabNavigatorParamList & AuthScreensParamList & SettingsNavigatorParamList & ReimbursementAccountNavigatorParamList & FullScreenNavigatorParamList; -type PolicyRoute = RouteProp< +type PolicyRoute = PlatformStackRouteProp< NavigatorsParamList, | typeof SCREENS.REIMBURSEMENT_ACCOUNT_ROOT | typeof SCREENS.WORKSPACE.INITIAL diff --git a/src/pages/workspace/workflows/WorkspaceAutoReportingFrequencyPage.tsx b/src/pages/workspace/workflows/WorkspaceAutoReportingFrequencyPage.tsx index d026c218910f..c3448c2f7c95 100644 --- a/src/pages/workspace/workflows/WorkspaceAutoReportingFrequencyPage.tsx +++ b/src/pages/workspace/workflows/WorkspaceAutoReportingFrequencyPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import type {ValueOf} from 'type-fest'; import FullPageNotFoundView from '@components/BlockingViews/FullPageNotFoundView'; @@ -13,6 +12,7 @@ import useThemeStyles from '@hooks/useThemeStyles'; import * as ErrorUtils from '@libs/ErrorUtils'; import * as Localize from '@libs/Localize'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {FullScreenNavigatorParamList} from '@libs/Navigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; @@ -27,7 +27,7 @@ import {isEmptyObject} from '@src/types/utils/EmptyObject'; type AutoReportingFrequencyKey = Exclude, 'instant'>; type Locale = ValueOf; -type WorkspaceAutoReportingFrequencyPageProps = WithPolicyOnyxProps & StackScreenProps; +type WorkspaceAutoReportingFrequencyPageProps = WithPolicyOnyxProps & PlatformStackScreenProps; type WorkspaceAutoReportingFrequencyPageItem = { text: string; diff --git a/src/pages/workspace/workflows/WorkspaceAutoReportingMonthlyOffsetPage.tsx b/src/pages/workspace/workflows/WorkspaceAutoReportingMonthlyOffsetPage.tsx index a9f96061ec0a..8336700a7d79 100644 --- a/src/pages/workspace/workflows/WorkspaceAutoReportingMonthlyOffsetPage.tsx +++ b/src/pages/workspace/workflows/WorkspaceAutoReportingMonthlyOffsetPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useState} from 'react'; import type {ValueOf} from 'type-fest'; import FullPageNotFoundView from '@components/BlockingViews/FullPageNotFoundView'; @@ -8,6 +7,7 @@ import SelectionList from '@components/SelectionList'; import RadioListItem from '@components/SelectionList/RadioListItem'; import useLocalize from '@hooks/useLocalize'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {FullScreenNavigatorParamList} from '@libs/Navigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; @@ -21,7 +21,8 @@ import {isEmptyObject} from '@src/types/utils/EmptyObject'; const DAYS_OF_MONTH = 28; -type WorkspaceAutoReportingMonthlyOffsetProps = WithPolicyOnyxProps & StackScreenProps; +type WorkspaceAutoReportingMonthlyOffsetProps = WithPolicyOnyxProps & + PlatformStackScreenProps; type AutoReportingOffsetKeys = ValueOf; diff --git a/src/pages/workspace/workflows/WorkspaceWorkflowsPage.tsx b/src/pages/workspace/workflows/WorkspaceWorkflowsPage.tsx index 17bad8a1a102..76fd4370cbc7 100644 --- a/src/pages/workspace/workflows/WorkspaceWorkflowsPage.tsx +++ b/src/pages/workspace/workflows/WorkspaceWorkflowsPage.tsx @@ -1,5 +1,4 @@ import {useFocusEffect} from '@react-navigation/native'; -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useMemo, useState} from 'react'; import {ActivityIndicator, View} from 'react-native'; import {useOnyx} from 'react-native-onyx'; @@ -21,6 +20,7 @@ import useTheme from '@hooks/useTheme'; import useThemeStyles from '@hooks/useThemeStyles'; import * as ErrorUtils from '@libs/ErrorUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import {getPaymentMethodDescription} from '@libs/PaymentUtils'; import * as PersonalDetailsUtils from '@libs/PersonalDetailsUtils'; import * as PolicyUtils from '@libs/PolicyUtils'; @@ -42,7 +42,7 @@ import type {ToggleSettingOptionRowProps} from './ToggleSettingsOptionRow'; import {getAutoReportingFrequencyDisplayNames} from './WorkspaceAutoReportingFrequencyPage'; import type {AutoReportingFrequencyKey} from './WorkspaceAutoReportingFrequencyPage'; -type WorkspaceWorkflowsPageProps = WithPolicyProps & StackScreenProps; +type WorkspaceWorkflowsPageProps = WithPolicyProps & PlatformStackScreenProps; function WorkspaceWorkflowsPage({policy, route}: WorkspaceWorkflowsPageProps) { const {translate, preferredLocale} = useLocalize(); diff --git a/src/pages/workspace/workflows/WorkspaceWorkflowsPayerPage.tsx b/src/pages/workspace/workflows/WorkspaceWorkflowsPayerPage.tsx index 0931492614cc..4b1666968b3b 100644 --- a/src/pages/workspace/workflows/WorkspaceWorkflowsPayerPage.tsx +++ b/src/pages/workspace/workflows/WorkspaceWorkflowsPayerPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useMemo, useState} from 'react'; import type {SectionListData} from 'react-native'; import type {OnyxEntry} from 'react-native-onyx'; @@ -15,6 +14,7 @@ import useNetwork from '@hooks/useNetwork'; import {formatPhoneNumber} from '@libs/LocalePhoneNumber'; import Log from '@libs/Log'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import * as OptionsListUtils from '@libs/OptionsListUtils'; import * as PersonalDetailsUtils from '@libs/PersonalDetailsUtils'; import * as PolicyUtils from '@libs/PolicyUtils'; @@ -35,7 +35,7 @@ type WorkspaceWorkflowsPayerPageOnyxProps = { type WorkspaceWorkflowsPayerPageProps = WorkspaceWorkflowsPayerPageOnyxProps & WithPolicyAndFullscreenLoadingProps & - StackScreenProps; + PlatformStackScreenProps; type MemberOption = Omit & {accountID: number}; type MembersSection = SectionListData>; diff --git a/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsApproverPage.tsx b/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsApproverPage.tsx index 5a1a0bf7dc01..359a90a152ad 100644 --- a/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsApproverPage.tsx +++ b/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsApproverPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useEffect, useMemo, useState} from 'react'; import type {SectionListData} from 'react-native'; import {useOnyx} from 'react-native-onyx'; @@ -19,6 +18,7 @@ import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import * as DeviceCapabilities from '@libs/DeviceCapabilities'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {FullScreenNavigatorParamList} from '@libs/Navigation/types'; import * as OptionsListUtils from '@libs/OptionsListUtils'; import * as PolicyUtils from '@libs/PolicyUtils'; @@ -35,7 +35,7 @@ import type {Icon} from '@src/types/onyx/OnyxCommon'; import {isEmptyObject} from '@src/types/utils/EmptyObject'; type WorkspaceWorkflowsApprovalsApproverPageProps = WithPolicyAndFullscreenLoadingProps & - StackScreenProps; + PlatformStackScreenProps; type SelectionListApprover = { text: string; diff --git a/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsCreatePage.tsx b/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsCreatePage.tsx index dc0f067f60df..f6d86eed7d10 100644 --- a/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsCreatePage.tsx +++ b/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsCreatePage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useRef} from 'react'; // eslint-disable-next-line no-restricted-imports import type {ScrollView} from 'react-native'; @@ -11,6 +10,7 @@ import ScreenWrapper from '@components/ScreenWrapper'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {FullScreenNavigatorParamList} from '@libs/Navigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper'; @@ -23,7 +23,8 @@ import type SCREENS from '@src/SCREENS'; import {isEmptyObject} from '@src/types/utils/EmptyObject'; import ApprovalWorkflowEditor from './ApprovalWorkflowEditor'; -type WorkspaceWorkflowsApprovalsCreatePageProps = WithPolicyAndFullscreenLoadingProps & StackScreenProps; +type WorkspaceWorkflowsApprovalsCreatePageProps = WithPolicyAndFullscreenLoadingProps & + PlatformStackScreenProps; function WorkspaceWorkflowsApprovalsCreatePage({policy, isLoadingReportData = true, route}: WorkspaceWorkflowsApprovalsCreatePageProps) { const styles = useThemeStyles(); diff --git a/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsEditPage.tsx b/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsEditPage.tsx index c2da4e39739a..cf8337f16b8e 100644 --- a/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsEditPage.tsx +++ b/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsEditPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react'; // eslint-disable-next-line no-restricted-imports import type {ScrollView} from 'react-native'; @@ -13,6 +12,7 @@ import ScreenWrapper from '@components/ScreenWrapper'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {FullScreenNavigatorParamList} from '@libs/Navigation/types'; import * as PolicyUtils from '@libs/PolicyUtils'; import {convertPolicyEmployeesToApprovalWorkflows} from '@libs/WorkflowUtils'; @@ -27,7 +27,8 @@ import type ApprovalWorkflow from '@src/types/onyx/ApprovalWorkflow'; import {isEmptyObject} from '@src/types/utils/EmptyObject'; import ApprovalWorkflowEditor from './ApprovalWorkflowEditor'; -type WorkspaceWorkflowsApprovalsEditPageProps = WithPolicyAndFullscreenLoadingProps & StackScreenProps; +type WorkspaceWorkflowsApprovalsEditPageProps = WithPolicyAndFullscreenLoadingProps & + PlatformStackScreenProps; function WorkspaceWorkflowsApprovalsEditPage({policy, isLoadingReportData = true, route}: WorkspaceWorkflowsApprovalsEditPageProps) { const styles = useThemeStyles(); diff --git a/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsExpensesFromPage.tsx b/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsExpensesFromPage.tsx index 917ef5b8d2ff..91c11a84e828 100644 --- a/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsExpensesFromPage.tsx +++ b/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsExpensesFromPage.tsx @@ -1,4 +1,3 @@ -import type {StackScreenProps} from '@react-navigation/stack'; import React, {useCallback, useEffect, useMemo, useState} from 'react'; import type {SectionListData} from 'react-native'; import {useOnyx} from 'react-native-onyx'; @@ -19,6 +18,7 @@ import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import * as DeviceCapabilities from '@libs/DeviceCapabilities'; import Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {FullScreenNavigatorParamList} from '@libs/Navigation/types'; import * as OptionsListUtils from '@libs/OptionsListUtils'; import * as PolicyUtils from '@libs/PolicyUtils'; @@ -48,7 +48,7 @@ type SelectionListMember = { type MembersSection = SectionListData>; type WorkspaceWorkflowsApprovalsExpensesFromPageProps = WithPolicyAndFullscreenLoadingProps & - StackScreenProps; + PlatformStackScreenProps; function WorkspaceWorkflowsApprovalsExpensesFromPage({policy, isLoadingReportData = true, route}: WorkspaceWorkflowsApprovalsExpensesFromPageProps) { const styles = useThemeStyles(); diff --git a/src/types/utils/CommonProperties.ts b/src/types/utils/CommonProperties.ts new file mode 100644 index 000000000000..e4e44f92fd8e --- /dev/null +++ b/src/types/utils/CommonProperties.ts @@ -0,0 +1,9 @@ +// Utility type for omitting properties in an object that are 'never'. +type OmitNever> = { + [K in keyof T as T[K] extends never ? never : K]: T[K]; +}; + +// Helper type to get common properties between two types. +type CommonProperties = OmitNever>; + +export default CommonProperties; diff --git a/src/types/utils/Substract.ts b/src/types/utils/Substract.ts new file mode 100644 index 000000000000..33e281ce8e1a --- /dev/null +++ b/src/types/utils/Substract.ts @@ -0,0 +1,5 @@ +type Subtract = { + [Property in Exclude]: TypeA[Property]; +}; + +export default Subtract; diff --git a/tests/perf-test/ChatFinderPage.perf-test.tsx b/tests/perf-test/ChatFinderPage.perf-test.tsx index 4346977a1cd0..fe656f8d8652 100644 --- a/tests/perf-test/ChatFinderPage.perf-test.tsx +++ b/tests/perf-test/ChatFinderPage.perf-test.tsx @@ -1,5 +1,4 @@ import type * as NativeNavigation from '@react-navigation/native'; -import type {StackNavigationProp, StackScreenProps} from '@react-navigation/stack'; import {fireEvent, screen} from '@testing-library/react-native'; import React, {useMemo} from 'react'; import type {ComponentType} from 'react'; @@ -10,6 +9,7 @@ import {LocaleContextProvider} from '@components/LocaleContextProvider'; import OptionListContextProvider, {OptionsListContext} from '@components/OptionListContextProvider'; import {KeyboardStateProvider} from '@components/withKeyboardState'; import type {WithNavigationFocusProps} from '@components/withNavigationFocus'; +import type {PlatformStackNavigationProp, PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {RootStackParamList} from '@libs/Navigation/types'; import {createOptionList} from '@libs/OptionsListUtils'; import ChatFinderPage from '@pages/ChatFinderPage'; @@ -134,7 +134,7 @@ afterEach(() => { Onyx.clear(); }); -type ChatFinderPageProps = StackScreenProps & { +type ChatFinderPageProps = PlatformStackScreenProps & { betas?: OnyxEntry; reports?: OnyxCollection; isSearchingForReports?: OnyxEntry; @@ -175,7 +175,7 @@ test('[ChatFinderPage] should render list with cached options', async () => { await screen.findByTestId('ChatFinderPage'); }; - const navigation = {addListener} as unknown as StackNavigationProp; + const navigation = {addListener} as unknown as PlatformStackNavigationProp; return waitForBatchedUpdates() .then(() => @@ -209,7 +209,7 @@ test('[ChatFinderPage] should interact when text input changes', async () => { fireEvent.changeText(input, 'Email Five'); }; - const navigation = {addListener} as unknown as StackNavigationProp; + const navigation = {addListener} as unknown as PlatformStackNavigationProp; return waitForBatchedUpdates() .then(() => diff --git a/tests/perf-test/ReportScreen.perf-test.tsx b/tests/perf-test/ReportScreen.perf-test.tsx index 95ac9729e606..8733ad4cd095 100644 --- a/tests/perf-test/ReportScreen.perf-test.tsx +++ b/tests/perf-test/ReportScreen.perf-test.tsx @@ -1,4 +1,3 @@ -import type {StackNavigationProp, StackScreenProps} from '@react-navigation/stack'; import {screen} from '@testing-library/react-native'; import type {ComponentType} from 'react'; import React from 'react'; @@ -9,6 +8,7 @@ import type Animated from 'react-native-reanimated'; import {measurePerformance} from 'reassure'; import type {WithNavigationFocusProps} from '@components/withNavigationFocus'; import type Navigation from '@libs/Navigation/Navigation'; +import type {PlatformStackNavigationProp, PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {AuthScreensParamList} from '@libs/Navigation/types'; import ComposeProviders from '@src/components/ComposeProviders'; import DragAndDropProvider from '@src/components/DragAndDrop/Provider'; @@ -34,7 +34,7 @@ import * as TestHelper from '../utils/TestHelper'; import waitForBatchedUpdates from '../utils/waitForBatchedUpdates'; import wrapOnyxWithWaitForBatchedUpdates from '../utils/wrapOnyxWithWaitForBatchedUpdates'; -type ReportScreenWrapperProps = StackScreenProps; +type ReportScreenWrapperProps = PlatformStackScreenProps; jest.mock('@src/libs/API', () => ({ write: jest.fn(), @@ -209,7 +209,7 @@ test('[ReportScreen] should render ReportScreen', async () => { await screen.findByTestId(`report-screen-${report.reportID}`); }; - const navigation = {addListener} as unknown as StackNavigationProp; + const navigation = {addListener} as unknown as PlatformStackNavigationProp; await waitForBatchedUpdates(); const reportCollectionDataSet: ReportCollectionDataSet = { @@ -243,7 +243,7 @@ test('[ReportScreen] should render composer', async () => { await screen.findByTestId('composer'); }; - const navigation = {addListener} as unknown as StackNavigationProp; + const navigation = {addListener} as unknown as PlatformStackNavigationProp; await waitForBatchedUpdates(); @@ -278,7 +278,7 @@ test('[ReportScreen] should render report list', async () => { await screen.findByTestId('report-actions-list'); }; - const navigation = {addListener} as unknown as StackNavigationProp; + const navigation = {addListener} as unknown as PlatformStackNavigationProp; await waitForBatchedUpdates();