import { type AccountFragment, type PostMentionFragment, useAccountsBulkQuery } from "@hey/indexer"; import { useState } from "react"; import SingleAccount from "@/components/Shared/Account/SingleAccount"; import SingleAccountShimmer from "@/components/Shared/Shimmer/SingleAccountShimmer"; import Skeleton from "@/components/Shared/Skeleton"; import { Card, ErrorMessage, Modal } from "@/components/Shared/UI"; import { useAccountStore } from "@/store/persisted/useAccountStore"; import MoreRelevantPeople from "./MoreRelevantPeople"; interface RelevantPeopleProps { mentions: PostMentionFragment[]; } const RelevantPeople = ({ mentions }: RelevantPeopleProps) => { const { currentAccount } = useAccountStore(); const [showMore, setShowMore] = useState(false); const accountAddresses = mentions.map((accountMention) => accountMention.__typename === "AccountMention" ? accountMention.account : accountMention.replace.from ); const { data, error, loading } = useAccountsBulkQuery({ skip: accountAddresses.length <= 0, variables: { request: { addresses: accountAddresses } } }); if (accountAddresses.length <= 0) { return null; } if (loading) { return (
); } if (!data?.accountsBulk?.length) { return null; } const firstAccounts = data?.accountsBulk?.slice(0, 5); return ( <> {firstAccounts?.map((account) => (
))} {(data?.accountsBulk?.length || 0) > 5 && ( )}
setShowMore(false)} show={showMore} title="Relevant people" > ); }; export default RelevantPeople;