diff options
Diffstat (limited to 'src/view/screens')
-rw-r--r-- | src/view/screens/Home.tsx | 25 | ||||
-rw-r--r-- | src/view/screens/NotFound.tsx | 14 | ||||
-rw-r--r-- | src/view/screens/Notifications.tsx | 3 | ||||
-rw-r--r-- | src/view/screens/PostLikedBy.tsx (renamed from src/view/screens/PostUpvotedBy.tsx) | 8 | ||||
-rw-r--r-- | src/view/screens/PostThread.tsx | 2 | ||||
-rw-r--r-- | src/view/screens/Profile.tsx | 3 | ||||
-rw-r--r-- | src/view/screens/Search.tsx | 1 |
7 files changed, 44 insertions, 12 deletions
diff --git a/src/view/screens/Home.tsx b/src/view/screens/Home.tsx index 4f2bc4c15..871aae9c7 100644 --- a/src/view/screens/Home.tsx +++ b/src/view/screens/Home.tsx @@ -33,6 +33,7 @@ export const HomeScreen = withAuthRequired((_opts: Props) => { useFocusEffect( React.useCallback(() => { + store.shell.setMinimalShellMode(false) store.shell.setIsDrawerSwipeDisabled(selectedPage > 0) return () => { store.shell.setIsDrawerSwipeDisabled(false) @@ -42,6 +43,7 @@ export const HomeScreen = withAuthRequired((_opts: Props) => { const onPageSelected = React.useCallback( (index: number) => { + store.shell.setMinimalShellMode(false) setSelectedPage(index) store.shell.setIsDrawerSwipeDisabled(index > 0) }, @@ -54,7 +56,13 @@ export const HomeScreen = withAuthRequired((_opts: Props) => { const renderTabBar = React.useCallback( (props: RenderTabBarFnProps) => { - return <FeedsTabBar {...props} onPressSelected={onPressSelected} /> + return ( + <FeedsTabBar + {...props} + testID="homeScreenFeedTabs" + onPressSelected={onPressSelected} + /> + ) }, [onPressSelected], ) @@ -66,27 +74,36 @@ export const HomeScreen = withAuthRequired((_opts: Props) => { const initialPage = store.me.follows.isEmpty ? 1 : 0 return ( <Pager + testID="homeScreen" onPageSelected={onPageSelected} renderTabBar={renderTabBar} tabBarPosition="top" initialPage={initialPage}> <FeedPage key="1" + testID="followingFeedPage" isPageFocused={selectedPage === 0} feed={store.me.mainFeed} renderEmptyState={renderFollowingEmptyState} /> - <FeedPage key="2" isPageFocused={selectedPage === 1} feed={algoFeed} /> + <FeedPage + key="2" + testID="whatshotFeedPage" + isPageFocused={selectedPage === 1} + feed={algoFeed} + /> </Pager> ) }) const FeedPage = observer( ({ + testID, isPageFocused, feed, renderEmptyState, }: { + testID?: string feed: FeedModel isPageFocused: boolean renderEmptyState?: () => JSX.Element @@ -163,9 +180,9 @@ const FeedPage = observer( }, [feed, scrollToTop]) return ( - <View style={s.h100pct}> + <View testID={testID} style={s.h100pct}> <Feed - testID="homeFeed" + testID={testID ? `${testID}-feed` : undefined} key="default" feed={feed} scrollElRef={scrollElRef} diff --git a/src/view/screens/NotFound.tsx b/src/view/screens/NotFound.tsx index 6ab37f117..cb52da58b 100644 --- a/src/view/screens/NotFound.tsx +++ b/src/view/screens/NotFound.tsx @@ -1,16 +1,28 @@ import React from 'react' import {StyleSheet, View} from 'react-native' -import {useNavigation, StackActions} from '@react-navigation/native' +import { + useNavigation, + StackActions, + useFocusEffect, +} from '@react-navigation/native' import {ViewHeader} from '../com/util/ViewHeader' import {Text} from '../com/util/text/Text' import {Button} from 'view/com/util/forms/Button' import {NavigationProp} from 'lib/routes/types' import {usePalette} from 'lib/hooks/usePalette' +import {useStores} from 'state/index' import {s} from 'lib/styles' export const NotFoundScreen = () => { const pal = usePalette('default') const navigation = useNavigation<NavigationProp>() + const store = useStores() + + useFocusEffect( + React.useCallback(() => { + store.shell.setMinimalShellMode(false) + }, [store]), + ) const canGoBack = navigation.canGoBack() const onPressHome = React.useCallback(() => { diff --git a/src/view/screens/Notifications.tsx b/src/view/screens/Notifications.tsx index 7da563843..e5521c7ac 100644 --- a/src/view/screens/Notifications.tsx +++ b/src/view/screens/Notifications.tsx @@ -72,6 +72,7 @@ export const NotificationsScreen = withAuthRequired( // = useFocusEffect( React.useCallback(() => { + store.shell.setMinimalShellMode(false) store.log.debug('NotificationsScreen: Updating feed') const softResetSub = store.onScreenSoftReset(scrollToTop) store.me.notifications.loadUnreadCount() @@ -86,7 +87,7 @@ export const NotificationsScreen = withAuthRequired( ) return ( - <View style={s.hContentRegion}> + <View testID="notificationsScreen" style={s.hContentRegion}> <ViewHeader title="Notifications" canGoBack={false} /> <Feed view={store.me.notifications} diff --git a/src/view/screens/PostUpvotedBy.tsx b/src/view/screens/PostLikedBy.tsx index 35b55f3c4..fb44f1f9b 100644 --- a/src/view/screens/PostUpvotedBy.tsx +++ b/src/view/screens/PostLikedBy.tsx @@ -4,12 +4,12 @@ import {useFocusEffect} from '@react-navigation/native' import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' import {withAuthRequired} from 'view/com/auth/withAuthRequired' import {ViewHeader} from '../com/util/ViewHeader' -import {PostVotedBy as PostLikedByComponent} from '../com/post-thread/PostVotedBy' +import {PostLikedBy as PostLikedByComponent} from '../com/post-thread/PostLikedBy' import {useStores} from 'state/index' import {makeRecordUri} from 'lib/strings/url-helpers' -type Props = NativeStackScreenProps<CommonNavigatorParams, 'PostUpvotedBy'> -export const PostUpvotedByScreen = withAuthRequired(({route}: Props) => { +type Props = NativeStackScreenProps<CommonNavigatorParams, 'PostLikedBy'> +export const PostLikedByScreen = withAuthRequired(({route}: Props) => { const store = useStores() const {name, rkey} = route.params const uri = makeRecordUri(name, 'app.bsky.feed.post', rkey) @@ -23,7 +23,7 @@ export const PostUpvotedByScreen = withAuthRequired(({route}: Props) => { return ( <View> <ViewHeader title="Liked by" /> - <PostLikedByComponent uri={uri} direction="up" /> + <PostLikedByComponent uri={uri} /> </View> ) }) diff --git a/src/view/screens/PostThread.tsx b/src/view/screens/PostThread.tsx index ad54126b6..9bfdcc95a 100644 --- a/src/view/screens/PostThread.tsx +++ b/src/view/screens/PostThread.tsx @@ -29,8 +29,8 @@ export const PostThreadScreen = withAuthRequired(({route}: Props) => { useFocusEffect( React.useCallback(() => { - const threadCleanup = view.registerListeners() store.shell.setMinimalShellMode(false) + const threadCleanup = view.registerListeners() if (!view.hasLoaded && !view.isLoading) { view.setup().catch(err => { store.log.error('Failed to fetch thread', err) diff --git a/src/view/screens/Profile.tsx b/src/view/screens/Profile.tsx index 65f1fef26..556578e77 100644 --- a/src/view/screens/Profile.tsx +++ b/src/view/screens/Profile.tsx @@ -42,6 +42,7 @@ export const ProfileScreen = withAuthRequired( useFocusEffect( React.useCallback(() => { let aborted = false + store.shell.setMinimalShellMode(false) const feedCleanup = uiState.feed.registerListeners() if (hasSetup) { uiState.update() @@ -57,7 +58,7 @@ export const ProfileScreen = withAuthRequired( aborted = true feedCleanup() } - }, [hasSetup, uiState]), + }, [hasSetup, uiState, store]), ) // events diff --git a/src/view/screens/Search.tsx b/src/view/screens/Search.tsx index 641d144ae..e6947013e 100644 --- a/src/view/screens/Search.tsx +++ b/src/view/screens/Search.tsx @@ -152,6 +152,7 @@ export const SearchScreen = withAuthRequired( {autocompleteView.searchRes.map(item => ( <ProfileCard key={item.did} + testID={`searchAutoCompleteResult-${item.handle}`} handle={item.handle} displayName={item.displayName} avatar={item.avatar} |