-
Notifications
You must be signed in to change notification settings - Fork 2.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[NoQA] Perf: PlatormStackNavigation
- Use @react-navigation/native-stack
on mobile platforms
#37891
Merged
Merged
Changes from all commits
Commits
Show all changes
210 commits
Select commit
Hold shift + click to select a range
7628767
feat: revert native stack to the state when PR was merged
kirillzyusko 349e3b0
fix: cross platform slide_from_left transition
kirillzyusko afcb123
fix (#37257): use instead of transition
kirillzyusko 90c03a7
fix: ts & eslint
kirillzyusko 047ea38
fix: show profile picture from settings
kirillzyusko b5e5e7d
fix: consistent transitions on Android for Settings/Profile screen
kirillzyusko 9664f2b
fix: Status screen, pronounce screen, start chat screen -> fixed keyb…
kirillzyusko 8860266
fix: hide keyboard on swipe for Private notes
kirillzyusko afde8de
feat: added integration with InteractionManager
kirillzyusko 07fb94f
fix: prettier
kirillzyusko 6b6690c
chore: rename patches to be more consistent wwith other changes
kirillzyusko b9d2262
fix: new chat -> description (keyboard close on back swipe)
kirillzyusko 2aec5af
chore: added PRs references for patches
kirillzyusko 3bc8265
fix: double back press from preferences causes buttons on settings sc…
kirillzyusko f2c32e6
chore: removed commented out code
kirillzyusko 2fff6cb
fix: leftModalStackNavigator platform specific options
kirillzyusko ffa510b
fix: incorrect automatic types conversion
kirillzyusko 651bbef
chore: update RNS to latest version, remove patch
kirillzyusko 915bafc
Merge branch 'main' into perf/native-stack-v2
chrispader 6729764
Merge branch 'main' into perf/native-stack-v2
chrispader ea5172c
Merge branch 'main' into perf/native-stack-v2
chrispader 5ca7316
update deps
chrispader a0be472
implement typed createPlatformStackNavigator
chrispader 5282af1
simplify abstraction layer
chrispader 3121e45
re-structure platform depdendent stack navigation options
chrispader 3b9b5b0
move files
chrispader 57bfdd2
simplify and improve createPlatformStackNavigator
chrispader a9dbb9e
fix: default animation
chrispader 85fc4bb
adapt pages
chrispader 75b5cac
add patch for additional (onyx) props
chrispader 1c60ee6
use PlatformStackScreenProps
chrispader 1f78767
Merge branch 'main' into perf/native-stack-v2
chrispader c5b5775
fix: lint errors
chrispader 23b70c2
fix: pass generic parameter
chrispader a47a398
replace remaining stack navigators
chrispader 289ba71
restructure styles
chrispader 18fc893
improve platform navigation
chrispader 3b40ab2
update custom navigator factories
chrispader 0dbc9a7
adapt custom navigators
chrispader b3ec7ef
remove log
chrispader 7ec5d05
Merge branch 'main' into perf/native-stack-v2
chrispader 8c4df3a
remove remaining references to native stack and stack directly
chrispader f33eba6
update pods
chrispader 884627b
fix: order of animations
chrispader 568cf4a
move files
chrispader eda54ab
remove Podfile changes
chrispader de68a31
remove unused defaultScreenOptions
chrispader f8dc036
update animations
chrispader e6aae18
add more animations
chrispader 86a3af7
fix: remove animations from bottom tab navigator
chrispader 69a534c
keyboardHandlingEnabled prop only on stack
chrispader 9296237
add default screen options prop
chrispader 346f4e6
remove stack animation props
chrispader 8744c4b
add react import
chrispader 210a95f
fix: bottom tab not working
chrispader 96cd874
add more types
chrispader b4f3248
add transformScreenOptions function
chrispader 5e453ba
adapt platform stack navigation
chrispader 6e8a07d
rename types
chrispader 57a3250
play around with animations
chrispader f937f54
Merge branch 'main' into perf/native-stack-v2
chrispader 5acaa45
update patch
chrispader a346076
fix: patch
chrispader 256ee99
adapt responsive stack navigator
chrispader c9c2008
adapt
chrispader 15b7689
rename generic parameters
chrispader 48632e7
fix: react navigation types
chrispader 6327d66
move navigators out of factory
chrispader 1080e07
add defaultOptions to CustomBottomTabNavigator
chrispader 6649b86
fix: animations
chrispader be6b3ed
Merge branch 'main' into perf/native-stack-v2
chrispader 32cfce4
simplify ResponsiveStackNavigator types
chrispader 9f592f3
update Podfile.lock
chrispader 850bb3d
fix: no animation on small screens
chrispader 706dc61
simplify PlatformStackNavigation code
chrispader 10e50c2
simplify ResponsiveStackNavigator
chrispader 26a667a
update type names
chrispader 1620f0c
fix: param
chrispader 43f7848
simplify types
chrispader 2fe3e72
simplify responsive stack navigator
chrispader 85d015e
simplify Bottom tab navigator
chrispader 00fa244
further improve logic of PlatformStackNaivgation
chrispader 6d25042
simplify custom routers
chrispader 56d210f
Merge branch 'main' into perf/native-stack-v2
chrispader 0dcb55e
improve types and add comments
chrispader 8875023
update screen props type usage
chrispader 4b40806
allow nativeOnly and webOnly options
chrispader a2f16c3
fix: defaultScreenOptions
chrispader b322da4
fix: last TS error
chrispader 451ce65
fix: lint errors
chrispader ed39726
Merge branch 'main' into perf/native-stack-v2
chrispader 929c655
Merge branch 'main' into perf/native-stack-v2
chrispader 899f180
fix: navigation updating every render
chrispader 549d0f1
fix: Podfile
chrispader 5a35435
fix: React not found
chrispader 22c0e16
simplify web animations
chrispader d78c8ed
update patches
chrispader 8ba4ccc
add keyboardHandlingEnabled option to native stack
chrispader 316d44f
use defaultScreenOptions
chrispader 8a4524c
update defaultScreenOptions type
chrispader 09a39b9
fix: bottom tab navigator transformState on native
chrispader 3f094af
Merge branch 'main' into perf/native-stack-v2
chrispader 7c04f3f
change iOS animation
chrispader 26bc827
Merge branch 'main' into perf/native-stack-v2
kirillzyusko bd961fa
fix: crash when attempt to upload a photo
kirillzyusko d64570d
chore: update react-native-screens to latest version
kirillzyusko 4292e59
Merge branch 'main' into perf/native-stack-v2
kirillzyusko 552b978
fix: update lock files
kirillzyusko 3d37d9d
fix: lint, typescript
kirillzyusko c443b1c
fix: typo
kirillzyusko fb718b7
fix: issue#4
kirillzyusko 5cf5c71
Merge branch 'main' into perf/native-stack-v2
kirillzyusko 1e61de8
fix: CI
kirillzyusko 935e673
fix: post changes after merge
kirillzyusko 36d426b
Merge branch 'main' into perf/native-stack-v2
kirillzyusko 6076420
Merge branch 'main' into perf/native-stack-v2
kirillzyusko 4142883
Merge branch 'main' into perf/native-stack-v2
kirillzyusko f6faabd
Merge branch 'main' into perf/native-stack-v2
chrispader 3e1e8ca
Merge branch 'main' into perf/native-stack-v2
chrispader 2b741ff
fix: merge conflict
chrispader d068e77
remove outdated file
chrispader 87a9884
fix: TS errors
chrispader 3d068bc
chore: remove Podfile.lock diff
chrispader 4b04c4a
fix: memoize also on native
chrispader 70a6d48
remove TODO comment
chrispader bea66c0
update web/native only navigation options and rename
chrispader 91ee836
update styles based on recent navigation option rename
chrispader 041262a
migrate stack navigator
chrispader 7129a3c
use CustomRouter
chrispader 239e6ea
extended @react-navigation/core patch
chrispader 2968c26
simplify patch
chrispader cc81448
fix: patch
chrispader 9aadd77
fix: patch
chrispader ac34ed9
fix: simplify platform stack logic
chrispader 94c6ec2
simplify navigation option conversion
chrispader 2442679
restructure types
chrispader 5258724
Merge branch 'main' into perf/native-stack-v2
chrispader 7684407
improve patch
chrispader 625a00b
update patch
chrispader 1a992c7
simplify types
chrispader f132d9c
update patch
chrispader b97e15a
fix: bottom stack always uses `slide_from_right` animation
chrispader 30b5e48
move PlatformStackNavigatorComponent
chrispader 05e7be0
fix: rename navigator components
chrispader 9927faf
prioritize others over common navigation options
chrispader af97d99
fix: patch
chrispader a4effeb
restructure
chrispader 1e4f480
add defaultScreenOptions for PlatformStackNavigator
chrispader fcb9849
use defaultScreenOptions on navigator
chrispader 63c9f94
use defaultPlatformStackScreenOptions in ResponsiveStackNavigator
chrispader 3ebddd8
add `ios_from_left` animation to `react-native-screens`
chrispader 1dae4dd
use ios like animations on android
chrispader a07e571
fix: lint errors
chrispader 9c85763
update RNS patch
chrispader e0a9fc0
update RNS patch
chrispader ed0c177
update RNS patch
chrispader 1bd5a6a
update patch
chrispader ecd8b53
update RNS patch
chrispader e4be7cf
update RNS patch
chrispader 24287b5
update patch
chrispader 2fa23e3
Merge branch 'main' into perf/native-stack-v2
chrispader 5b1e5fb
fix: patch
chrispader a404e55
update patch
chrispader 3ea4cdd
fix: patch (patch-package bug, renamed files lead to error when patch…
chrispader 296afc1
Merge branch 'main' into perf/native-stack-v2
chrispader d5e7497
Merge branch 'main' into perf/native-stack-v2
chrispader b37e0a2
revert unintentional patch change
chrispader 8d50c0c
fix: StackView import
chrispader 8f1dc94
fix: eslint
chrispader d3c33c4
re-arrange options
chrispader 0527250
Merge branch 'main' into perf/native-stack-v2
chrispader b90ba70
Merge branch 'main' into perf/native-stack-v2
chrispader 75c40fb
fix: wrong replacements
chrispader 6db8b60
fix: lint
chrispader 0e9cbfd
Merge branch 'main' into perf/native-stack-v2
chrispader 234e91e
disable gesture for no animation screens
chrispader b7155b1
fix: animation wrong direction in modals
chrispader c4639ab
update RouteProp types
chrispader 3f4280d
move type
chrispader 88cbda4
fix: missing prop
chrispader 7d7823d
Merge branch 'main' into perf/native-stack-v2
chrispader fb5a17d
fix: VisionCamera fabric bug, deinit camera session on screen unmount
chrispader ce4f8c6
update Podfile.lock
chrispader 5701c46
Merge branch 'main' into perf/native-stack-v2
chrispader c3c7c7a
remove screen and component changes
chrispader c2062c6
Merge branch 'main' into perf/native-stack-v2
chrispader 4f50477
further remove migration code
chrispader e3f4372
keep old custom navigator factories
chrispader 78de04c
add back old navigator factories
chrispader cb2687a
revert Podfile.lock changes
chrispader 300922a
Merge branch 'main' into perf/native-stack-v2
chrispader 225194a
fix: missing react import
chrispader f32a857
Merge branch 'main' into perf/native-stack-v2
chrispader 525325b
fix: vision camera patch
chrispader 107e5c5
fix: lint and ts
chrispader d416c6e
Merge branch 'main' into perf/native-stack-v2
chrispader 1d51dbf
fix: lint
chrispader e989200
fix: apply bottom tab state transformation to mobile as well, because…
kirillzyusko d880c39
fix: storybook
kirillzyusko ec2cbe9
fix: create constants and re-use them instead of string duplication
kirillzyusko e012a79
fix: changes after review
kirillzyusko 922d145
fix: eslint
kirillzyusko fffd74d
fix: last changes after review
kirillzyusko 064ad5b
fix: eslint
kirillzyusko 0ade1e1
fix: I hope it's last fix for eslint
kirillzyusko 3325a07
fix: eslint
kirillzyusko 6c22124
fix: remove unused properties
kirillzyusko bf06916
fix: partially resolve new comments
kirillzyusko 3bc381c
fix: removed unused files
kirillzyusko 707e207
fix: refactor types
kirillzyusko File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
1,435 changes: 1,435 additions & 0 deletions
1,435
patches/@react-navigation+core+6.4.11+002+platform-navigation-stack-types.patch
Large diffs are not rendered by default.
Oops, something went wrong.
157 changes: 157 additions & 0 deletions
157
patches/@react-navigation+native-stack+6.9.26+001+keyboardHandlingEnabled-prop.patch
Large diffs are not rendered by default.
Oops, something went wrong.
196 changes: 196 additions & 0 deletions
196
...hes/@react-navigation+native-stack+6.9.26+002+added-interaction-manager-integration.patch
Large diffs are not rendered by default.
Oops, something went wrong.
413 changes: 413 additions & 0 deletions
413
patches/react-native-screens+3.34.0+002+ios_from_left_animation.patch
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
191 changes: 191 additions & 0 deletions
191
...libs/Navigation/AppNavigator/createCustomPlatformStackBottomTabNavigator/BottomTabBar.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,191 @@ | ||
import {useNavigation} from '@react-navigation/native'; | ||
import React, {memo, useCallback, useEffect, useState} from 'react'; | ||
import {NativeModules, View} from 'react-native'; | ||
import {useOnyx} from 'react-native-onyx'; | ||
import Icon from '@components/Icon'; | ||
import * as Expensicons from '@components/Icon/Expensicons'; | ||
import {PressableWithFeedback} from '@components/Pressable'; | ||
import type {SearchQueryString} from '@components/Search/types'; | ||
import Tooltip from '@components/Tooltip'; | ||
import useActiveWorkspace from '@hooks/useActiveWorkspace'; | ||
import useLocalize from '@hooks/useLocalize'; | ||
import useTheme from '@hooks/useTheme'; | ||
import useThemeStyles from '@hooks/useThemeStyles'; | ||
import * as Session from '@libs/actions/Session'; | ||
import interceptAnonymousUser from '@libs/interceptAnonymousUser'; | ||
import Navigation from '@libs/Navigation/Navigation'; | ||
import type {AuthScreensParamList} from '@libs/Navigation/types'; | ||
import {isCentralPaneName} from '@libs/NavigationUtils'; | ||
import * as PolicyUtils from '@libs/PolicyUtils'; | ||
import * as SearchUtils from '@libs/SearchUtils'; | ||
import type {BrickRoad} from '@libs/WorkspacesSettingsUtils'; | ||
import {getChatTabBrickRoad} from '@libs/WorkspacesSettingsUtils'; | ||
import navigationRef from '@navigation/navigationRef'; | ||
import BottomTabAvatar from '@pages/home/sidebar/BottomTabAvatar'; | ||
import BottomTabBarFloatingActionButton from '@pages/home/sidebar/BottomTabBarFloatingActionButton'; | ||
import variables from '@styles/variables'; | ||
import * as Welcome from '@userActions/Welcome'; | ||
import * as OnboardingFlow from '@userActions/Welcome/OnboardingFlow'; | ||
import CONST from '@src/CONST'; | ||
import NAVIGATORS from '@src/NAVIGATORS'; | ||
import ONYXKEYS from '@src/ONYXKEYS'; | ||
import type {Route} from '@src/ROUTES'; | ||
import ROUTES from '@src/ROUTES'; | ||
import SCREENS from '@src/SCREENS'; | ||
|
||
type BottomTabBarProps = { | ||
selectedTab: string | undefined; | ||
}; | ||
|
||
/** | ||
* Returns SearchQueryString that has policyID correctly set. | ||
* | ||
* When we're coming back to Search Screen we might have pre-existing policyID inside SearchQuery. | ||
* There are 2 cases when we might want to remove this `policyID`: | ||
* - if Policy was removed in another screen | ||
* - if WorkspaceSwitcher was used to globally unset a policyID | ||
* Otherwise policyID will be inserted into query | ||
*/ | ||
function handleQueryWithPolicyID(query: SearchQueryString, activePolicyID?: string): SearchQueryString { | ||
const queryJSON = SearchUtils.buildSearchQueryJSON(query); | ||
if (!queryJSON) { | ||
return query; | ||
} | ||
|
||
const policyID = activePolicyID ?? queryJSON.policyID; | ||
const policy = PolicyUtils.getPolicy(policyID); | ||
|
||
// In case policy is missing or there is no policy currently selected via WorkspaceSwitcher we remove it | ||
if (!activePolicyID || !policy) { | ||
delete queryJSON.policyID; | ||
} else { | ||
queryJSON.policyID = policyID; | ||
} | ||
|
||
return SearchUtils.buildSearchQueryString(queryJSON); | ||
} | ||
|
||
function BottomTabBar({selectedTab}: BottomTabBarProps) { | ||
const theme = useTheme(); | ||
const styles = useThemeStyles(); | ||
const {translate} = useLocalize(); | ||
const navigation = useNavigation(); | ||
const {activeWorkspaceID} = useActiveWorkspace(); | ||
const [isLoadingApp] = useOnyx(ONYXKEYS.IS_LOADING_APP); | ||
const transactionViolations = useOnyx(ONYXKEYS.COLLECTION.TRANSACTION_VIOLATIONS); | ||
const [chatTabBrickRoad, setChatTabBrickRoad] = useState<BrickRoad>(getChatTabBrickRoad(activeWorkspaceID)); | ||
|
||
useEffect(() => { | ||
setChatTabBrickRoad(getChatTabBrickRoad(activeWorkspaceID)); | ||
}, [activeWorkspaceID, transactionViolations]); | ||
|
||
useEffect(() => { | ||
const navigationState = navigation.getState(); | ||
const routes = navigationState?.routes; | ||
const currentRoute = routes?.at(navigationState?.index ?? 0); | ||
// When we are redirected to the Settings tab from the OldDot, we don't want to call the Welcome.show() method. | ||
// To prevent this, the value of the bottomTabRoute?.name is checked here | ||
if (!!(currentRoute && currentRoute.name !== NAVIGATORS.BOTTOM_TAB_NAVIGATOR && !isCentralPaneName(currentRoute.name)) || Session.isAnonymousUser()) { | ||
return; | ||
} | ||
|
||
// HybridApp has own entry point when we decide whether to display onboarding and explanation modal. | ||
if (NativeModules.HybridAppModule) { | ||
return; | ||
} | ||
|
||
Welcome.isOnboardingFlowCompleted({ | ||
onNotCompleted: () => OnboardingFlow.startOnboardingFlow(), | ||
}); | ||
|
||
// eslint-disable-next-line react-compiler/react-compiler, react-hooks/exhaustive-deps | ||
}, [isLoadingApp]); | ||
|
||
const navigateToChats = useCallback(() => { | ||
if (selectedTab === SCREENS.HOME) { | ||
return; | ||
} | ||
const route = activeWorkspaceID ? (`/w/${activeWorkspaceID}/${ROUTES.HOME}` as Route) : ROUTES.HOME; | ||
Navigation.navigate(route); | ||
}, [activeWorkspaceID, selectedTab]); | ||
|
||
const navigateToSearch = useCallback(() => { | ||
if (selectedTab === SCREENS.SEARCH.BOTTOM_TAB) { | ||
return; | ||
} | ||
interceptAnonymousUser(() => { | ||
const rootState = navigationRef.getRootState(); | ||
const lastSearchRoute = rootState.routes.filter((route) => route.name === SCREENS.SEARCH.CENTRAL_PANE).at(-1); | ||
|
||
if (lastSearchRoute) { | ||
const {q, ...rest} = lastSearchRoute.params as AuthScreensParamList[typeof SCREENS.SEARCH.CENTRAL_PANE]; | ||
const cleanedQuery = handleQueryWithPolicyID(q, activeWorkspaceID); | ||
|
||
Navigation.navigate( | ||
ROUTES.SEARCH_CENTRAL_PANE.getRoute({ | ||
query: cleanedQuery, | ||
...rest, | ||
}), | ||
); | ||
return; | ||
} | ||
|
||
const defaultCannedQuery = SearchUtils.buildCannedSearchQuery(); | ||
// when navigating to search we might have an activePolicyID set from workspace switcher | ||
const query = activeWorkspaceID ? `${defaultCannedQuery} ${CONST.SEARCH.SYNTAX_ROOT_KEYS.POLICY_ID}:${activeWorkspaceID}` : defaultCannedQuery; | ||
Navigation.navigate(ROUTES.SEARCH_CENTRAL_PANE.getRoute({query})); | ||
}); | ||
}, [activeWorkspaceID, selectedTab]); | ||
|
||
return ( | ||
<View style={styles.bottomTabBarContainer}> | ||
<Tooltip text={translate('common.inbox')}> | ||
<PressableWithFeedback | ||
onPress={navigateToChats} | ||
role={CONST.ROLE.BUTTON} | ||
accessibilityLabel={translate('common.inbox')} | ||
wrapperStyle={styles.flex1} | ||
style={styles.bottomTabBarItem} | ||
> | ||
<View> | ||
<Icon | ||
src={Expensicons.Inbox} | ||
fill={selectedTab === SCREENS.HOME ? theme.iconMenu : theme.icon} | ||
width={variables.iconBottomBar} | ||
height={variables.iconBottomBar} | ||
/> | ||
{chatTabBrickRoad && ( | ||
<View style={styles.bottomTabStatusIndicator(chatTabBrickRoad === CONST.BRICK_ROAD_INDICATOR_STATUS.INFO ? theme.iconSuccessFill : theme.danger)} /> | ||
)} | ||
</View> | ||
</PressableWithFeedback> | ||
</Tooltip> | ||
<Tooltip text={translate('common.search')}> | ||
<PressableWithFeedback | ||
onPress={navigateToSearch} | ||
role={CONST.ROLE.BUTTON} | ||
accessibilityLabel={translate('common.search')} | ||
wrapperStyle={styles.flex1} | ||
style={styles.bottomTabBarItem} | ||
> | ||
<View> | ||
<Icon | ||
src={Expensicons.MoneySearch} | ||
fill={selectedTab === SCREENS.SEARCH.BOTTOM_TAB ? theme.iconMenu : theme.icon} | ||
width={variables.iconBottomBar} | ||
height={variables.iconBottomBar} | ||
/> | ||
</View> | ||
</PressableWithFeedback> | ||
</Tooltip> | ||
<BottomTabAvatar isSelected={selectedTab === SCREENS.SETTINGS.ROOT} /> | ||
<View style={[styles.flex1, styles.bottomTabBarItem]}> | ||
<BottomTabBarFloatingActionButton /> | ||
</View> | ||
</View> | ||
); | ||
} | ||
|
||
BottomTabBar.displayName = 'BottomTabBar'; | ||
|
||
export default memo(BottomTabBar); |
22 changes: 22 additions & 0 deletions
22
...vigator/createCustomPlatformStackBottomTabNavigator/BottomTabNavigationContentWrapper.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 ( | ||
<ScreenWrapper | ||
testID={displayName} | ||
shouldShowOfflineIndicator={false} | ||
shouldEnableKeyboardAvoidingView={false} | ||
shouldEnablePickerAvoiding={false} | ||
> | ||
<View style={styles.flex1}>{children}</View> | ||
</ScreenWrapper> | ||
); | ||
} | ||
|
||
export default BottomTabNavigationContentWrapper; |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is possible to put
/w/${activeWorkspaceID}/${ROUTES.HOME}
on ROUTES.ts?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@fabioh8010 again, I think it's copied/pasted code, so not sure if we need to do that 🙈
And additionally - is it possible to create dynamic routes in
ROUTES.ts
? Or we want to add two routes and use ternary operator inBottomTabBar.tsx
and choose between two routes?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Answered here