diff options
author | Hailey <me@haileyok.com> | 2024-08-21 19:35:34 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-21 19:35:34 -0700 |
commit | 61f0be705d614a31331945e1c4b9361d71b81403 (patch) | |
tree | 093eae09977443d66ad917f45c6c5e1362559001 /src/components/StarterPack | |
parent | 6616a6467ec53aa71e5f823c2d8c46dc01442703 (diff) | |
download | voidsky-61f0be705d614a31331945e1c4b9361d71b81403.tar.zst |
Change size (#4957)
Diffstat (limited to 'src/components/StarterPack')
-rw-r--r-- | src/components/StarterPack/Main/ProfilesList.tsx | 31 | ||||
-rw-r--r-- | src/components/StarterPack/Wizard/WizardEditListDialog.tsx | 3 | ||||
-rw-r--r-- | src/components/StarterPack/Wizard/WizardListCard.tsx | 5 |
3 files changed, 27 insertions, 12 deletions
diff --git a/src/components/StarterPack/Main/ProfilesList.tsx b/src/components/StarterPack/Main/ProfilesList.tsx index 3249f1b32..6174bff02 100644 --- a/src/components/StarterPack/Main/ProfilesList.tsx +++ b/src/components/StarterPack/Main/ProfilesList.tsx @@ -9,14 +9,15 @@ import { import {InfiniteData, UseInfiniteQueryResult} from '@tanstack/react-query' import {useBottomBarOffset} from 'lib/hooks/useBottomBarOffset' +import {useInitialNumToRender} from 'lib/hooks/useInitialNumToRender' import {isBlockedOrBlocking} from 'lib/moderation/blocked-and-muted' import {isNative, isWeb} from 'platform/detection' -import {useListMembersQuery} from 'state/queries/list-members' +import {useAllListMembersQuery} from 'state/queries/list-members' import {useSession} from 'state/session' import {List, ListRef} from 'view/com/util/List' import {SectionRef} from '#/screens/Profile/Sections/types' import {atoms as a, useTheme} from '#/alf' -import {ListMaybePlaceholder} from '#/components/Lists' +import {ListFooter, ListMaybePlaceholder} from '#/components/Lists' import {Default as ProfileCard} from '#/components/ProfileCard' function keyExtractor(item: AppBskyActorDefs.ProfileViewBasic, index: number) { @@ -39,17 +40,20 @@ export const ProfilesList = React.forwardRef<SectionRef, ProfilesListProps>( ref, ) { const t = useTheme() - const [initialHeaderHeight] = React.useState(headerHeight) - const bottomBarOffset = useBottomBarOffset(20) + const bottomBarOffset = useBottomBarOffset(200) + const initialNumToRender = useInitialNumToRender() const {currentAccount} = useSession() - const {data, refetch, isError} = useListMembersQuery(listUri, 50) + const {data, refetch, isError} = useAllListMembersQuery(listUri) const [isPTRing, setIsPTRing] = React.useState(false) // The server returns these sorted by descending creation date, so we want to invert - const profiles = data?.pages - .flatMap(p => p.items.map(i => i.subject)) - .filter(p => !isBlockedOrBlocking(p) && !p.associated?.labeler) + + const profiles = data + ?.filter( + p => !isBlockedOrBlocking(p.subject) && !p.subject.associated?.labeler, + ) + .map(p => p.subject) .reverse() const isOwn = new AtUri(listUri).host === currentAccount?.did @@ -99,7 +103,11 @@ export const ProfilesList = React.forwardRef<SectionRef, ProfilesListProps>( if (!data) { return ( - <View style={{marginTop: headerHeight, marginBottom: bottomBarOffset}}> + <View + style={[ + a.h_full_vh, + {marginTop: headerHeight, marginBottom: bottomBarOffset}, + ]}> <ListMaybePlaceholder isLoading={true} isError={isError} @@ -118,10 +126,13 @@ export const ProfilesList = React.forwardRef<SectionRef, ProfilesListProps>( ref={scrollElRef} headerOffset={headerHeight} ListFooterComponent={ - <View style={[{height: initialHeaderHeight + bottomBarOffset}]} /> + <ListFooter + style={{paddingBottom: bottomBarOffset, borderTopWidth: 0}} + /> } showsVerticalScrollIndicator={false} desktopFixedHeight + initialNumToRender={initialNumToRender} refreshing={isPTRing} onRefresh={async () => { setIsPTRing(true) diff --git a/src/components/StarterPack/Wizard/WizardEditListDialog.tsx b/src/components/StarterPack/Wizard/WizardEditListDialog.tsx index cf755e1bc..870cbbb9f 100644 --- a/src/components/StarterPack/Wizard/WizardEditListDialog.tsx +++ b/src/components/StarterPack/Wizard/WizardEditListDialog.tsx @@ -7,6 +7,7 @@ import {BottomSheetFlatListMethods} from '@discord/bottom-sheet' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' +import {useInitialNumToRender} from 'lib/hooks/useInitialNumToRender' import {isWeb} from 'platform/detection' import {useSession} from 'state/session' import {WizardAction, WizardState} from '#/screens/StarterPack/Wizard/State' @@ -42,6 +43,7 @@ export function WizardEditListDialog({ const {_} = useLingui() const t = useTheme() const {currentAccount} = useSession() + const initialNumToRender = useInitialNumToRender() const listRef = useRef<BottomSheetFlatListMethods>(null) @@ -148,6 +150,7 @@ export function WizardEditListDialog({ webInnerStyle={[a.py_0, {maxWidth: 500, minWidth: 200}]} keyboardDismissMode="on-drag" removeClippedSubviews={true} + initialNumToRender={initialNumToRender} /> </Dialog.Outer> ) diff --git a/src/components/StarterPack/Wizard/WizardListCard.tsx b/src/components/StarterPack/Wizard/WizardListCard.tsx index 55cf0f02b..bd308fc73 100644 --- a/src/components/StarterPack/Wizard/WizardListCard.tsx +++ b/src/components/StarterPack/Wizard/WizardListCard.tsx @@ -12,7 +12,7 @@ import {GeneratorView} from '@atproto/api/dist/client/types/app/bsky/feed/defs' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {DISCOVER_FEED_URI} from 'lib/constants' +import {DISCOVER_FEED_URI, STARTER_PACK_MAX_SIZE} from 'lib/constants' import {sanitizeDisplayName} from 'lib/strings/display-names' import {sanitizeHandle} from 'lib/strings/handles' import {useSession} from 'state/session' @@ -130,7 +130,8 @@ export function WizardProfileCard({ const isMe = profile.did === currentAccount?.did const included = isMe || state.profiles.some(p => p.did === profile.did) - const disabled = isMe || (!included && state.profiles.length >= 49) + const disabled = + isMe || (!included && state.profiles.length >= STARTER_PACK_MAX_SIZE - 1) const moderationUi = moderateProfile(profile, moderationOpts).ui('avatar') const displayName = profile.displayName ? sanitizeDisplayName(profile.displayName) |