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;