diff options
Diffstat (limited to 'src/view')
-rw-r--r-- | src/view/com/post-thread/PostLikedBy.tsx | 23 | ||||
-rw-r--r-- | src/view/com/post-thread/PostQuotes.tsx | 15 | ||||
-rw-r--r-- | src/view/com/post-thread/PostRepostedBy.tsx | 12 | ||||
-rw-r--r-- | src/view/com/profile/ProfileFollowers.tsx | 26 | ||||
-rw-r--r-- | src/view/com/profile/ProfileFollows.tsx | 26 | ||||
-rw-r--r-- | src/view/com/util/Views.web.tsx | 2 | ||||
-rw-r--r-- | src/view/screens/ProfileFollowers.tsx | 23 | ||||
-rw-r--r-- | src/view/screens/ProfileFollows.tsx | 23 |
8 files changed, 87 insertions, 63 deletions
diff --git a/src/view/com/post-thread/PostLikedBy.tsx b/src/view/com/post-thread/PostLikedBy.tsx index c3e3f9e17..4c5bdf1a5 100644 --- a/src/view/com/post-thread/PostLikedBy.tsx +++ b/src/view/com/post-thread/PostLikedBy.tsx @@ -1,23 +1,24 @@ import React, {useCallback, useMemo, useState} from 'react' import {AppBskyFeedGetLikes as GetLikes} from '@atproto/api' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' import {cleanError} from '#/lib/strings/errors' import {logger} from '#/logger' import {useLikedByQuery} from '#/state/queries/post-liked-by' import {useResolveUriQuery} from '#/state/queries/resolve-uri' import {useInitialNumToRender} from 'lib/hooks/useInitialNumToRender' +import {isWeb} from 'platform/detection' import {ProfileCardWithFollowBtn} from '#/view/com/profile/ProfileCard' import {List} from '#/view/com/util/List' -import { - ListFooter, - ListHeaderDesktop, - ListMaybePlaceholder, -} from '#/components/Lists' +import {ListFooter, ListMaybePlaceholder} from '#/components/Lists' -function renderItem({item}: {item: GetLikes.Like}) { - return <ProfileCardWithFollowBtn key={item.actor.did} profile={item.actor} /> +function renderItem({item, index}: {item: GetLikes.Like; index: number}) { + return ( + <ProfileCardWithFollowBtn + key={item.actor.did} + profile={item.actor} + noBorder={index === 0 && !isWeb} + /> + ) } function keyExtractor(item: GetLikes.Like) { @@ -25,7 +26,6 @@ function keyExtractor(item: GetLikes.Like) { } export function PostLikedBy({uri}: {uri: string}) { - const {_} = useLingui() const initialNumToRender = useInitialNumToRender() const [isPTRing, setIsPTRing] = useState(false) @@ -78,6 +78,7 @@ export function PostLikedBy({uri}: {uri: string}) { <ListMaybePlaceholder isLoading={isLoadingUri || isLoadingLikes} isError={isError} + sideBorders={false} /> ) } @@ -91,7 +92,6 @@ export function PostLikedBy({uri}: {uri: string}) { onRefresh={onRefresh} onEndReached={onEndReached} onEndReachedThreshold={4} - ListHeaderComponent={<ListHeaderDesktop title={_(msg`Liked By`)} />} ListFooterComponent={ <ListFooter isFetchingNextPage={isFetchingNextPage} @@ -103,6 +103,7 @@ export function PostLikedBy({uri}: {uri: string}) { desktopFixedHeight initialNumToRender={initialNumToRender} windowSize={11} + sideBorders={false} /> ) } diff --git a/src/view/com/post-thread/PostQuotes.tsx b/src/view/com/post-thread/PostQuotes.tsx index f91a041d7..48c8a69ef 100644 --- a/src/view/com/post-thread/PostQuotes.tsx +++ b/src/view/com/post-thread/PostQuotes.tsx @@ -14,24 +14,23 @@ import {useModerationOpts} from '#/state/preferences/moderation-opts' import {usePostQuotesQuery} from '#/state/queries/post-quotes' import {useResolveUriQuery} from '#/state/queries/resolve-uri' import {useInitialNumToRender} from 'lib/hooks/useInitialNumToRender' +import {isWeb} from 'platform/detection' import {Post} from 'view/com/post/Post' -import { - ListFooter, - ListHeaderDesktop, - ListMaybePlaceholder, -} from '#/components/Lists' +import {ListFooter, ListMaybePlaceholder} from '#/components/Lists' import {List} from '../util/List' function renderItem({ item, + index, }: { item: { post: AppBskyFeedDefs.PostView moderation: ModerationDecision record: AppBskyFeedPost.Record } + index: number }) { - return <Post post={item.post} /> + return <Post post={item.post} hideTopBorder={index === 0 && !isWeb} /> } function keyExtractor(item: { @@ -45,7 +44,6 @@ function keyExtractor(item: { export function PostQuotes({uri}: {uri: string}) { const {_} = useLingui() const initialNumToRender = useInitialNumToRender() - const [isPTRing, setIsPTRing] = useState(false) const { @@ -104,6 +102,7 @@ export function PostQuotes({uri}: {uri: string}) { <ListMaybePlaceholder isLoading={isLoadingUri || isLoadingQuotes} isError={isError} + sideBorders={false} /> ) } @@ -119,7 +118,6 @@ export function PostQuotes({uri}: {uri: string}) { onRefresh={onRefresh} onEndReached={onEndReached} onEndReachedThreshold={4} - ListHeaderComponent={<ListHeaderDesktop title={_(msg`Quotes`)} />} ListFooterComponent={ <ListFooter isFetchingNextPage={isFetchingNextPage} @@ -133,6 +131,7 @@ export function PostQuotes({uri}: {uri: string}) { desktopFixedHeight initialNumToRender={initialNumToRender} windowSize={11} + sideBorders={false} /> ) } diff --git a/src/view/com/post-thread/PostRepostedBy.tsx b/src/view/com/post-thread/PostRepostedBy.tsx index 0d1e86aec..aeba9a34d 100644 --- a/src/view/com/post-thread/PostRepostedBy.tsx +++ b/src/view/com/post-thread/PostRepostedBy.tsx @@ -1,7 +1,5 @@ import React, {useCallback, useMemo, useState} from 'react' import {AppBskyActorDefs as ActorDefs} from '@atproto/api' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' import {cleanError} from '#/lib/strings/errors' import {logger} from '#/logger' @@ -10,11 +8,7 @@ import {useResolveUriQuery} from '#/state/queries/resolve-uri' import {useInitialNumToRender} from 'lib/hooks/useInitialNumToRender' import {ProfileCardWithFollowBtn} from '#/view/com/profile/ProfileCard' import {List} from '#/view/com/util/List' -import { - ListFooter, - ListHeaderDesktop, - ListMaybePlaceholder, -} from '#/components/Lists' +import {ListFooter, ListMaybePlaceholder} from '#/components/Lists' function renderItem({item}: {item: ActorDefs.ProfileViewBasic}) { return <ProfileCardWithFollowBtn key={item.did} profile={item} /> @@ -25,7 +19,6 @@ function keyExtractor(item: ActorDefs.ProfileViewBasic) { } export function PostRepostedBy({uri}: {uri: string}) { - const {_} = useLingui() const initialNumToRender = useInitialNumToRender() const [isPTRing, setIsPTRing] = useState(false) @@ -78,6 +71,7 @@ export function PostRepostedBy({uri}: {uri: string}) { <ListMaybePlaceholder isLoading={isLoadingUri || isLoadingRepostedBy} isError={isError} + sideBorders={false} /> ) } @@ -93,7 +87,6 @@ export function PostRepostedBy({uri}: {uri: string}) { onRefresh={onRefresh} onEndReached={onEndReached} onEndReachedThreshold={4} - ListHeaderComponent={<ListHeaderDesktop title={_(msg`Reposted By`)} />} ListFooterComponent={ <ListFooter isFetchingNextPage={isFetchingNextPage} @@ -105,6 +98,7 @@ export function PostRepostedBy({uri}: {uri: string}) { desktopFixedHeight initialNumToRender={initialNumToRender} windowSize={11} + sideBorders={false} /> ) } diff --git a/src/view/com/profile/ProfileFollowers.tsx b/src/view/com/profile/ProfileFollowers.tsx index 94ca33e6e..8318f13de 100644 --- a/src/view/com/profile/ProfileFollowers.tsx +++ b/src/view/com/profile/ProfileFollowers.tsx @@ -8,17 +8,26 @@ import {logger} from '#/logger' import {useProfileFollowersQuery} from '#/state/queries/profile-followers' import {useResolveDidQuery} from '#/state/queries/resolve-uri' import {useInitialNumToRender} from 'lib/hooks/useInitialNumToRender' +import {isWeb} from 'platform/detection' import {useSession} from 'state/session' -import { - ListFooter, - ListHeaderDesktop, - ListMaybePlaceholder, -} from '#/components/Lists' +import {ListFooter, ListMaybePlaceholder} from '#/components/Lists' import {List} from '../util/List' import {ProfileCardWithFollowBtn} from './ProfileCard' -function renderItem({item}: {item: ActorDefs.ProfileViewBasic}) { - return <ProfileCardWithFollowBtn key={item.did} profile={item} /> +function renderItem({ + item, + index, +}: { + item: ActorDefs.ProfileViewBasic + index: number +}) { + return ( + <ProfileCardWithFollowBtn + key={item.did} + profile={item} + noBorder={index === 0 && !isWeb} + /> + ) } function keyExtractor(item: ActorDefs.ProfileViewBasic) { @@ -88,6 +97,7 @@ export function ProfileFollowers({name}: {name: string}) { } errorMessage={cleanError(resolveError || error)} onRetry={isError ? refetch : undefined} + sideBorders={false} /> ) } @@ -101,7 +111,6 @@ export function ProfileFollowers({name}: {name: string}) { onRefresh={onRefresh} onEndReached={onEndReached} onEndReachedThreshold={4} - ListHeaderComponent={<ListHeaderDesktop title={_(msg`Followers`)} />} ListFooterComponent={ <ListFooter isFetchingNextPage={isFetchingNextPage} @@ -113,6 +122,7 @@ export function ProfileFollowers({name}: {name: string}) { desktopFixedHeight initialNumToRender={initialNumToRender} windowSize={11} + sideBorders={false} /> ) } diff --git a/src/view/com/profile/ProfileFollows.tsx b/src/view/com/profile/ProfileFollows.tsx index 9b447c955..de4346afb 100644 --- a/src/view/com/profile/ProfileFollows.tsx +++ b/src/view/com/profile/ProfileFollows.tsx @@ -8,17 +8,26 @@ import {logger} from '#/logger' import {useProfileFollowsQuery} from '#/state/queries/profile-follows' import {useResolveDidQuery} from '#/state/queries/resolve-uri' import {useInitialNumToRender} from 'lib/hooks/useInitialNumToRender' +import {isWeb} from 'platform/detection' import {useSession} from 'state/session' -import { - ListFooter, - ListHeaderDesktop, - ListMaybePlaceholder, -} from '#/components/Lists' +import {ListFooter, ListMaybePlaceholder} from '#/components/Lists' import {List} from '../util/List' import {ProfileCardWithFollowBtn} from './ProfileCard' -function renderItem({item}: {item: ActorDefs.ProfileViewBasic}) { - return <ProfileCardWithFollowBtn key={item.did} profile={item} /> +function renderItem({ + item, + index, +}: { + item: ActorDefs.ProfileViewBasic + index: number +}) { + return ( + <ProfileCardWithFollowBtn + key={item.did} + profile={item} + noBorder={index === 0 && !isWeb} + /> + ) } function keyExtractor(item: ActorDefs.ProfileViewBasic) { @@ -88,6 +97,7 @@ export function ProfileFollows({name}: {name: string}) { } errorMessage={cleanError(resolveError || error)} onRetry={isError ? refetch : undefined} + sideBorders={false} /> ) } @@ -101,7 +111,6 @@ export function ProfileFollows({name}: {name: string}) { onRefresh={onRefresh} onEndReached={onEndReached} onEndReachedThreshold={4} - ListHeaderComponent={<ListHeaderDesktop title={_(msg`Following`)} />} ListFooterComponent={ <ListFooter isFetchingNextPage={isFetchingNextPage} @@ -113,6 +122,7 @@ export function ProfileFollows({name}: {name: string}) { desktopFixedHeight initialNumToRender={initialNumToRender} windowSize={11} + sideBorders={false} /> ) } diff --git a/src/view/com/util/Views.web.tsx b/src/view/com/util/Views.web.tsx index ed18c981a..c4549dbc7 100644 --- a/src/view/com/util/Views.web.tsx +++ b/src/view/com/util/Views.web.tsx @@ -47,7 +47,7 @@ export const CenteredView = React.forwardRef(function CenteredView( if (!isMobile) { style = addStyle(style, styles.container) } - if (sideBorders) { + if (sideBorders && !isMobile) { style = addStyle(style, { borderLeftWidth: StyleSheet.hairlineWidth, borderRightWidth: StyleSheet.hairlineWidth, diff --git a/src/view/screens/ProfileFollowers.tsx b/src/view/screens/ProfileFollowers.tsx index 6f8ecc2e8..68447bd77 100644 --- a/src/view/screens/ProfileFollowers.tsx +++ b/src/view/screens/ProfileFollowers.tsx @@ -1,12 +1,16 @@ import React from 'react' -import {View} from 'react-native' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useFocusEffect} from '@react-navigation/native' -import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' -import {ViewHeader} from '../com/util/ViewHeader' -import {ProfileFollowers as ProfileFollowersComponent} from '../com/profile/ProfileFollowers' + import {useSetMinimalShellMode} from '#/state/shell' -import {useLingui} from '@lingui/react' -import {msg} from '@lingui/macro' +import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' +import {isWeb} from 'platform/detection' +import {CenteredView} from 'view/com/util/Views' +import {atoms as a} from '#/alf' +import {ListHeaderDesktop} from '#/components/Lists' +import {ProfileFollowers as ProfileFollowersComponent} from '../com/profile/ProfileFollowers' +import {ViewHeader} from '../com/util/ViewHeader' type Props = NativeStackScreenProps<CommonNavigatorParams, 'ProfileFollowers'> export const ProfileFollowersScreen = ({route}: Props) => { @@ -21,9 +25,10 @@ export const ProfileFollowersScreen = ({route}: Props) => { ) return ( - <View style={{flex: 1}}> - <ViewHeader title={_(msg`Followers`)} /> + <CenteredView style={a.h_full_vh} sideBorders={true}> + <ListHeaderDesktop title={_(msg`Followers`)} /> + <ViewHeader title={_(msg`Followers`)} showBorder={!isWeb} /> <ProfileFollowersComponent name={name} /> - </View> + </CenteredView> ) } diff --git a/src/view/screens/ProfileFollows.tsx b/src/view/screens/ProfileFollows.tsx index bdab20153..7cc10ffd1 100644 --- a/src/view/screens/ProfileFollows.tsx +++ b/src/view/screens/ProfileFollows.tsx @@ -1,12 +1,16 @@ import React from 'react' -import {View} from 'react-native' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useFocusEffect} from '@react-navigation/native' -import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' -import {ViewHeader} from '../com/util/ViewHeader' -import {ProfileFollows as ProfileFollowsComponent} from '../com/profile/ProfileFollows' + import {useSetMinimalShellMode} from '#/state/shell' -import {useLingui} from '@lingui/react' -import {msg} from '@lingui/macro' +import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' +import {isWeb} from 'platform/detection' +import {CenteredView} from 'view/com/util/Views' +import {atoms as a} from '#/alf' +import {ListHeaderDesktop} from '#/components/Lists' +import {ProfileFollows as ProfileFollowsComponent} from '../com/profile/ProfileFollows' +import {ViewHeader} from '../com/util/ViewHeader' type Props = NativeStackScreenProps<CommonNavigatorParams, 'ProfileFollows'> export const ProfileFollowsScreen = ({route}: Props) => { @@ -21,9 +25,10 @@ export const ProfileFollowsScreen = ({route}: Props) => { ) return ( - <View style={{flex: 1}}> - <ViewHeader title={_(msg`Following`)} /> + <CenteredView style={a.h_full_vh} sideBorders={true}> + <ListHeaderDesktop title={_(msg`Following`)} /> + <ViewHeader title={_(msg`Following`)} showBorder={!isWeb} /> <ProfileFollowsComponent name={name} /> - </View> + </CenteredView> ) } |