mirror of
https://github.com/luxfi/explore.git
synced 2026-09-24 00:28:18 +00:00
* integrate erc-7984 * minor fix * upd * comments * remove the layout property from ConfidentialTokenValue * playwright screenshots * upd
42 lines
1.5 KiB
TypeScript
42 lines
1.5 KiB
TypeScript
import React from 'react';
|
|
|
|
import type { TokenHolder, TokenInfo } from 'types/api/token';
|
|
|
|
import { hasTokenIds, isConfidentialTokenType } from 'lib/token/tokenTypes';
|
|
import { TableBody, TableColumnHeader, TableHeaderSticky, TableRoot, TableRow } from 'toolkit/chakra/table';
|
|
import TokenHoldersTableItem from 'ui/token/TokenHolders/TokenHoldersTableItem';
|
|
|
|
interface Props {
|
|
data: Array<TokenHolder>;
|
|
token: TokenInfo;
|
|
top: number;
|
|
isLoading?: boolean;
|
|
}
|
|
|
|
const TokenHoldersTable = ({ data, token, top, isLoading }: Props) => {
|
|
return (
|
|
<TableRoot>
|
|
<TableHeaderSticky top={ top }>
|
|
<TableRow>
|
|
<TableColumnHeader w="70%">Holder</TableColumnHeader>
|
|
{ (hasTokenIds(token.type)) && <TableColumnHeader w="30%">ID#</TableColumnHeader> }
|
|
<TableColumnHeader isNumeric width="220px">Quantity</TableColumnHeader>
|
|
{ token.total_supply && token.type !== 'ERC-404' && !isConfidentialTokenType(token.type) && (
|
|
<TableColumnHeader isNumeric width="175px">Percentage</TableColumnHeader>
|
|
) }
|
|
</TableRow>
|
|
</TableHeaderSticky>
|
|
<TableBody>
|
|
{ data.map((item, index) => {
|
|
const tokenId = 'token_id' in item ? item.token_id : null;
|
|
return (
|
|
<TokenHoldersTableItem key={ item.address.hash + tokenId + (isLoading ? index : '') } holder={ item } token={ token } isLoading={ isLoading }/>
|
|
);
|
|
}) }
|
|
</TableBody>
|
|
</TableRoot>
|
|
);
|
|
};
|
|
|
|
export default React.memo(TokenHoldersTable);
|