diff options
Diffstat (limited to 'src/Navigation.tsx')
-rw-r--r-- | src/Navigation.tsx | 52 |
1 files changed, 51 insertions, 1 deletions
diff --git a/src/Navigation.tsx b/src/Navigation.tsx index 09631701f..7da77b877 100644 --- a/src/Navigation.tsx +++ b/src/Navigation.tsx @@ -14,6 +14,7 @@ import {createBottomTabNavigator} from '@react-navigation/bottom-tabs' import { HomeTabNavigatorParams, SearchTabNavigatorParams, + FeedsTabNavigatorParams, NotificationsTabNavigatorParams, FlatNavigatorParams, AllNavigatorParams, @@ -32,14 +33,18 @@ import {useStores} from './state' import {HomeScreen} from './view/screens/Home' import {SearchScreen} from './view/screens/Search' +import {FeedsScreen} from './view/screens/Feeds' import {NotificationsScreen} from './view/screens/Notifications' import {ModerationScreen} from './view/screens/Moderation' import {ModerationMuteListsScreen} from './view/screens/ModerationMuteLists' +import {DiscoverFeedsScreen} from 'view/screens/DiscoverFeeds' import {NotFoundScreen} from './view/screens/NotFound' import {SettingsScreen} from './view/screens/Settings' import {ProfileScreen} from './view/screens/Profile' import {ProfileFollowersScreen} from './view/screens/ProfileFollowers' import {ProfileFollowsScreen} from './view/screens/ProfileFollows' +import {CustomFeedScreen} from './view/screens/CustomFeed' +import {CustomFeedLikedByScreen} from './view/screens/CustomFeedLikedBy' import {ProfileListScreen} from './view/screens/ProfileList' import {PostThreadScreen} from './view/screens/PostThread' import {PostLikedByScreen} from './view/screens/PostLikedBy' @@ -54,6 +59,7 @@ import {CopyrightPolicyScreen} from './view/screens/CopyrightPolicy' import {AppPasswords} from 'view/screens/AppPasswords' import {ModerationMutedAccounts} from 'view/screens/ModerationMutedAccounts' import {ModerationBlockedAccounts} from 'view/screens/ModerationBlockedAccounts' +import {SavedFeeds} from 'view/screens/SavedFeeds' import {getRoutingInstrumentation} from 'lib/sentry' import {bskyTitle} from 'lib/strings/headings' @@ -61,6 +67,7 @@ const navigationRef = createNavigationContainerRef<AllNavigatorParams>() const HomeTab = createNativeStackNavigator<HomeTabNavigatorParams>() const SearchTab = createNativeStackNavigator<SearchTabNavigatorParams>() +const FeedsTab = createNativeStackNavigator<FeedsTabNavigatorParams>() const NotificationsTab = createNativeStackNavigator<NotificationsTabNavigatorParams>() const MyProfileTab = createNativeStackNavigator<MyProfileTabNavigatorParams>() @@ -101,6 +108,11 @@ function commonScreens(Stack: typeof HomeTab, unreadCountLabel?: string) { options={{title: title('Blocked Accounts')}} /> <Stack.Screen + name="DiscoverFeeds" + component={DiscoverFeedsScreen} + options={{title: title('Discover Feeds')}} + /> + <Stack.Screen name="Settings" component={SettingsScreen} options={{title: title('Settings')}} @@ -145,6 +157,16 @@ function commonScreens(Stack: typeof HomeTab, unreadCountLabel?: string) { options={({route}) => ({title: title(`Post by @${route.params.name}`)})} /> <Stack.Screen + name="CustomFeed" + component={CustomFeedScreen} + options={{title: title('Feed')}} + /> + <Stack.Screen + name="CustomFeedLikedBy" + component={CustomFeedLikedByScreen} + options={{title: title('Liked by')}} + /> + <Stack.Screen name="Debug" component={DebugScreen} options={{title: title('Debug')}} @@ -184,6 +206,11 @@ function commonScreens(Stack: typeof HomeTab, unreadCountLabel?: string) { component={AppPasswords} options={{title: title('App Passwords')}} /> + <Stack.Screen + name="SavedFeeds" + component={SavedFeeds} + options={{title: title('Edit My Feeds')}} + /> </> ) } @@ -201,11 +228,12 @@ function TabsNavigator() { screenOptions={{headerShown: false}} tabBar={tabBar}> <Tab.Screen name="HomeTab" component={HomeTabNavigator} /> + <Tab.Screen name="SearchTab" component={SearchTabNavigator} /> + <Tab.Screen name="FeedsTab" component={FeedsTabNavigator} /> <Tab.Screen name="NotificationsTab" component={NotificationsTabNavigator} /> - <Tab.Screen name="SearchTab" component={SearchTabNavigator} /> <Tab.Screen name="MyProfileTab" component={MyProfileTabNavigator} /> </Tab.Navigator> ) @@ -245,6 +273,23 @@ function SearchTabNavigator() { ) } +function FeedsTabNavigator() { + const contentStyle = useColorSchemeStyle(styles.bgLight, styles.bgDark) + return ( + <FeedsTab.Navigator + screenOptions={{ + gestureEnabled: true, + fullScreenGestureEnabled: true, + headerShown: false, + animationDuration: 250, + contentStyle, + }}> + <FeedsTab.Screen name="Feeds" component={FeedsScreen} /> + {commonScreens(FeedsTab as typeof HomeTab)} + </FeedsTab.Navigator> + ) +} + function NotificationsTabNavigator() { const contentStyle = useColorSchemeStyle(styles.bgLight, styles.bgDark) return ( @@ -319,6 +364,11 @@ const FlatNavigator = observer(() => { options={{title: title('Search')}} /> <Flat.Screen + name="Feeds" + component={FeedsScreen} + options={{title: title('Feeds')}} + /> + <Flat.Screen name="Notifications" component={NotificationsScreen} options={{title: title('Notifications')}} |