From c9451008bf3bc7e2b7c5223aee59e0e503eb4a45 Mon Sep 17 00:00:00 2001 From: Hailey Date: Fri, 14 Jun 2024 13:57:08 -0700 Subject: [PATCH] use new card in profile --- src/components/StarterPack/Main/FeedsList.tsx | 11 +- src/view/com/feeds/ProfileFeedgens.tsx | 110 ++++++++---------- 2 files changed, 54 insertions(+), 67 deletions(-) diff --git a/src/components/StarterPack/Main/FeedsList.tsx b/src/components/StarterPack/Main/FeedsList.tsx index b5af1bcb23..f5b78984ee 100644 --- a/src/components/StarterPack/Main/FeedsList.tsx +++ b/src/components/StarterPack/Main/FeedsList.tsx @@ -5,17 +5,12 @@ import {GeneratorView} from '@atproto/api/dist/client/types/app/bsky/feed/defs' import {useBottomBarOffset} from 'lib/hooks/useBottomBarOffset' import {isNative} from 'platform/detection' -import {FeedSourceCard} from 'view/com/feeds/FeedSourceCard' import {List, ListRef} from 'view/com/util/List' import {SectionRef} from '#/screens/Profile/Sections/types' +import * as FeedCard from '#/components/FeedCard' -function renderItem({item, index}: ListRenderItemInfo) { - return ( - - ) +function renderItem({item}: ListRenderItemInfo) { + return } function keyExtractor(item: AppBskyFeedDefs.GeneratorView) { diff --git a/src/view/com/feeds/ProfileFeedgens.tsx b/src/view/com/feeds/ProfileFeedgens.tsx index 197f35e4d0..43b6365fbe 100644 --- a/src/view/com/feeds/ProfileFeedgens.tsx +++ b/src/view/com/feeds/ProfileFeedgens.tsx @@ -3,7 +3,6 @@ import { findNodeHandle, ListRenderItemInfo, StyleProp, - StyleSheet, View, ViewStyle, } from 'react-native' @@ -14,16 +13,17 @@ import {useQueryClient} from '@tanstack/react-query' import {cleanError} from '#/lib/strings/errors' import {useTheme} from '#/lib/ThemeContext' import {logger} from '#/logger' -import {isNative, isWeb} from '#/platform/detection' -import {hydrateFeedGenerator} from '#/state/queries/feed' -import {usePreferencesQuery} from '#/state/queries/preferences' +import {isNative} from '#/platform/detection' import {RQKEY, useProfileFeedgensQuery} from '#/state/queries/profile-feedgens' +import {useBottomBarOffset} from 'lib/hooks/useBottomBarOffset' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {FeedLoadingPlaceholder} from '#/view/com/util/LoadingPlaceholder' import {EmptyState} from 'view/com/util/EmptyState' +import {atoms as a, useTheme as useAlfTheme} from '#/alf' +import * as FeedCard from '#/components/FeedCard' import {ErrorMessage} from '../util/error/ErrorMessage' import {List, ListRef} from '../util/List' import {LoadMoreRetryBtn} from '../util/LoadMoreRetryBtn' -import {FeedSourceCardLoaded} from './FeedSourceCard' const LOADING = {_reactKey: '__loading__'} const EMPTY = {_reactKey: '__empty__'} @@ -53,6 +53,9 @@ export const ProfileFeedgens = React.forwardRef< ) { const {_} = useLingui() const theme = useTheme() + const t = useAlfTheme() + const {isTabletOrDesktop} = useWebMediaQueries() + const bottomBarOffset = useBottomBarOffset(100) const [isPTRing, setIsPTRing] = React.useState(false) const opts = React.useMemo(() => ({enabled}), [enabled]) const { @@ -66,7 +69,6 @@ export const ProfileFeedgens = React.forwardRef< refetch, } = useProfileFeedgensQuery(did, opts) const isEmpty = !isFetching && !data?.pages[0]?.feeds.length - const {data: preferences} = usePreferencesQuery() const items = React.useMemo(() => { let items: any[] = [] @@ -79,10 +81,9 @@ export const ProfileFeedgens = React.forwardRef< items = items.concat([EMPTY]) } else if (data?.pages) { for (const page of data?.pages) { - items = items.concat(page.feeds.map(feed => hydrateFeedGenerator(feed))) + items = items.concat(page.feeds) } - } - if (isError && !isEmpty) { + } else if (isError && !isEmpty) { items = items.concat([LOAD_MORE_ERROR_ITEM]) } return items @@ -132,48 +133,43 @@ export const ProfileFeedgens = React.forwardRef< // rendering // = - const renderItemInner = React.useCallback( - ({item, index}: ListRenderItemInfo) => { - if (item === EMPTY) { - return ( - - ) - } else if (item === ERROR_ITEM) { - return ( - - ) - } else if (item === LOAD_MORE_ERROR_ITEM) { - return ( - - ) - } else if (item === LOADING) { - return - } - if (preferences) { - return ( - - ) - } - return null - }, - [error, refetch, onPressRetryLoadMore, preferences, _], - ) + const renderItem = ({item, index}: ListRenderItemInfo) => { + if (item === EMPTY) { + return ( + + ) + } else if (item === ERROR_ITEM) { + return ( + + ) + } else if (item === LOAD_MORE_ERROR_ITEM) { + return ( + + ) + } else if (item === LOADING) { + return + } + return ( + + + + ) + } React.useEffect(() => { if (enabled && scrollElRef.current) { @@ -189,11 +185,13 @@ export const ProfileFeedgens = React.forwardRef< ref={scrollElRef} data={items} keyExtractor={(item: any) => item._reactKey || item.uri} - renderItem={renderItemInner} + renderItem={renderItem} refreshing={isPTRing} onRefresh={onRefresh} headerOffset={headerOffset} - contentContainerStyle={isNative && {paddingBottom: headerOffset + 100}} + contentContainerStyle={ + isNative && {paddingBottom: headerOffset + bottomBarOffset} + } indicatorStyle={theme.colorScheme === 'dark' ? 'white' : 'black'} removeClippedSubviews={true} // @ts-ignore our .web version only -prf @@ -203,9 +201,3 @@ export const ProfileFeedgens = React.forwardRef< ) }) - -const styles = StyleSheet.create({ - item: { - paddingHorizontal: 18, - }, -})