diff --git a/apps/admin-x-activitypub/src/views/Profile/Profile.tsx b/apps/admin-x-activitypub/src/views/Profile/Profile.tsx index d79561b728c2..df5ba65ea91c 100644 --- a/apps/admin-x-activitypub/src/views/Profile/Profile.tsx +++ b/apps/admin-x-activitypub/src/views/Profile/Profile.tsx @@ -4,17 +4,22 @@ import NiceModal from '@ebay/nice-modal-react'; import {Activity,ActorProperties} from '@tryghost/admin-x-framework/api/activitypub'; import {Button, Heading, List, LoadingIndicator, NoValueLabel, Tab, TabView} from '@tryghost/admin-x-design-system'; import {Skeleton} from '@tryghost/shade'; +import {UseInfiniteQueryResult} from '@tanstack/react-query'; -import {Account, FollowAccount} from '../../api/activitypub'; import { - type AccountFollowsQueryResult, - type ActivityPubCollectionQueryResult, + Account, + ActivityPubCollectionResponse, + FollowAccount, + GetAccountFollowsResponse, + GetProfilePostsResponse +} from '../../api/activitypub'; +import {handleViewContent} from '@utils/content-handlers'; +import { useAccountFollowsForUser, useAccountForUser, useLikedForUser, - useOutboxForUser + useProfilePostsForUser } from '@hooks/use-activity-pub-queries'; -import {handleViewContent} from '@utils/content-handlers'; import APAvatar from '@components/global/APAvatar'; import ActivityItem from '@components/activities/ActivityItem'; @@ -25,7 +30,7 @@ import Separator from '@components/global/Separator'; import ViewProfileModal from '@components/modals/ViewProfileModal'; interface UseInfiniteScrollTabProps { - useDataHook: (key: string) => ActivityPubCollectionQueryResult | AccountFollowsQueryResult; + useDataHook: (key: string) => UseInfiniteQueryResult>; emptyStateLabel: string; emptyStateIcon: string; } @@ -46,11 +51,12 @@ const useInfiniteScrollTab = ({useDataHook, emptyStateLabel, emptyStateI if ('data' in page) { return page.data; } else if ('accounts' in page) { - return page.accounts as TData[]; + return page.accounts; + } else if ('posts' in page) { + return page.posts; } - return []; - }) ?? []); + }) ?? []) as TData[]; const observerRef = useRef(null); const loadMoreRef = useRef(null); @@ -126,7 +132,7 @@ const useInfiniteScrollTab = ({useDataHook, emptyStateLabel, emptyStateI const PostsTab: React.FC<{currentUserAccount: Account | undefined}> = ({currentUserAccount}) => { const {items, EmptyState, LoadingState} = useInfiniteScrollTab({ - useDataHook: useOutboxForUser, + useDataHook: (key: string) => useProfilePostsForUser(key, currentUserAccount?.handle || ''), emptyStateLabel: 'You haven\'t posted anything yet.', emptyStateIcon: 'pen' }); @@ -156,8 +162,10 @@ const PostsTab: React.FC<{currentUserAccount: Account | undefined}> = ({currentU handleViewContent({ ...activity, @@ -210,8 +218,10 @@ const LikesTab: React.FC<{currentUserAccount: Account | undefined}> = ({currentU handleViewContent({ ...activity,