diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Navigation.tsx | 20 | ||||
-rw-r--r-- | src/state/models/root-store.ts | 2 |
2 files changed, 19 insertions, 3 deletions
diff --git a/src/Navigation.tsx b/src/Navigation.tsx index e868dd3b0..3973b9dfa 100644 --- a/src/Navigation.tsx +++ b/src/Navigation.tsx @@ -1,8 +1,10 @@ import * as React from 'react' import {StyleSheet} from 'react-native' +import {observer} from 'mobx-react-lite' import { NavigationContainer, createNavigationContainerRef, + CommonActions, StackActions, } from '@react-navigation/native' import {createNativeStackNavigator} from '@react-navigation/native-stack' @@ -163,7 +165,7 @@ function NotificationsTabNavigator() { ) } -function MyProfileTabNavigator() { +const MyProfileTabNavigator = observer(() => { const contentStyle = useColorSchemeStyle(styles.bgLight, styles.bgDark) const store = useStores() return ( @@ -180,14 +182,14 @@ function MyProfileTabNavigator() { // @ts-ignore // TODO: fix this broken type in ProfileScreen component={ProfileScreen} initialParams={{ - name: store.me.handle, + name: store.me.did, hideBackButton: true, }} /> {commonScreens(MyProfileTab as typeof HomeTab)} </MyProfileTab.Navigator> ) -} +}) /** * The FlatNavigator is used by Web to represent the routes @@ -281,6 +283,17 @@ function resetToTab(tabName: 'HomeTab' | 'SearchTab' | 'NotificationsTab') { } } +function reset() { + if (navigationRef.isReady()) { + navigationRef.dispatch( + CommonActions.reset({ + index: 0, + routes: [{name: isNative ? 'HomeTab' : 'Home'}], + }), + ) + } +} + function handleLink(url: string) { let path if (url.startsWith('/')) { @@ -326,6 +339,7 @@ const styles = StyleSheet.create({ export { navigate, resetToTab, + reset, handleLink, TabsNavigator, FlatNavigator, diff --git a/src/state/models/root-store.ts b/src/state/models/root-store.ts index b3e744a40..6f919a4bf 100644 --- a/src/state/models/root-store.ts +++ b/src/state/models/root-store.ts @@ -21,6 +21,7 @@ import {PreferencesModel} from './ui/preferences' import {resetToTab} from '../../Navigation' import {ImageSizesCache} from './cache/image-sizes' import {MutedThreads} from './muted-threads' +import {reset as resetNavigation} from '../../Navigation' export const appInfo = z.object({ build: z.string(), @@ -123,6 +124,7 @@ export class RootStoreModel { this.agent = agent this.me.clear() await this.me.load() + resetNavigation() } /** |