import { useChatPermissionsFromChat } from "../hooks/useChatPermissionsFromChat";
import { Avatar, HStack, Text, useColorModeValue } from "@chakra-ui/react";
import { PublicKey } from "@solana/web3.js";
import { roundToDecimals, useTokenMetadata } from "@strata-foundation/react";
import { numberWithCommas } from "@strata-foundation/spl-utils";
import React, { Fragment, useMemo } from "react";
import { useChatOwnedAmounts } from "../hooks/useChatOwnedAmounts";
function IndividualTokenFlare({
token,
wallet,
chat,
}: {
token: PublicKey;
wallet: PublicKey | undefined;
chat: PublicKey | undefined;
}) {
const { info: chatPermissions } = useChatPermissionsFromChat(chat);
const { ownedReadAmount, ownedPostAmount, isSame, loading } =
useChatOwnedAmounts(wallet, chat);
const { image, metadata } = useTokenMetadata(token);
const color = useColorModeValue("gray.500", "gray.400");
if (loading || !chatPermissions) return null;
const isReadToken = token.equals(chatPermissions.readPermissionKey);
const amount = isReadToken ? ownedReadAmount : ownedPostAmount;
return (
{numberWithCommas(roundToDecimals(amount || 0, 2))}
);
}
export function TokenFlare({
tokens,
wallet,
chat,
}: {
tokens: PublicKey[];
wallet: PublicKey | undefined;
chat: PublicKey | undefined;
}) {
const uniqueTokens = useMemo(
() =>
[...new Set(tokens.map((t) => t.toBase58()))].map(
(t) => new PublicKey(t)
),
[tokens]
);
return (
{uniqueTokens.map((token) => (
))}
);
}