about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/Navigation.tsx20
-rw-r--r--src/state/models/root-store.ts2
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()
   }
 
   /**