import { TableEv as Table } from '@cybercongress/gravity';
import { Account, TextTable, NoItems, NumberCurrency } from '../../components';
import { formatNumber } from '../../utils/utils';

function Fans({ data }) {
  // const containerReference = useRef();
  // const [itemsToShow, setItemsToShow] = useState(10);

  // const setNextDisplayedPalettes = useCallback(() => {
  //   setItemsToShow(itemsToShow + 10);
  // }, [itemsToShow, setItemsToShow]);

  // const displayedPalettes = useMemo(
  //   () => data.sort((a, b) => b.balance - a.balance).slice(0, itemsToShow),
  //   [itemsToShow]
  // );

  const delegations = data
    .sort((a, b) => b.balance - a.balance)
    .map((item) => (
      <Table.Row
        paddingX={0}
        paddingY={5}
        display="flex"
        borderBottom="none"
        minHeight="48px"
        height="fit-content"
        key={item.delegation.delegator_address}
      >
        <Table.TextCell>
          <TextTable>
            <Account address={item.delegation.delegator_address} />
          </TextTable>
        </Table.TextCell>
        <Table.TextCell flex={2} textAlign="end">
          <TextTable>
            <NumberCurrency amount={item.balance.amount} />
          </TextTable>
        </Table.TextCell>
        <Table.TextCell textAlign="end">
          <TextTable>
            {item.share * 100 < 0.01
              ? '< 0.01'
              : formatNumber(item.share * 100, 2)}{' '}
            %
          </TextTable>
        </Table.TextCell>
      </Table.Row>
    ));
  return (
    <Table>
      <Table.Head
        style={{
          backgroundColor: '#000',
          borderBottom: '1px solid #ffffff80',
          marginTop: '10px',
          padding: 7,
          paddingBottom: '10px',
        }}
      >
        <Table.TextHeaderCell textAlign="center" flex={2}>
          <TextTable>contract</TextTable>
        </Table.TextHeaderCell>
        <Table.TextHeaderCell textAlign="center">
          <TextTable>stake</TextTable>
        </Table.TextHeaderCell>
        <Table.TextHeaderCell textAlign="center">
          <TextTable>share</TextTable>
        </Table.TextHeaderCell>
      </Table.Head>
      <Table.Body
        style={{
          backgroundColor: '#000',
          overflowY: 'hidden',
          padding: 7,
        }}
      >
        {/* <div
          style={{
            height: '30vh',
            overflow: 'auto',
          }}
          ref={containerReference}
        >
          <InfiniteScroll
            hasMore={itemsToShow < data.length}
            loader={<Loading />}
            pageStart={0}
            useWindow={false}
            loadMore={setNextDisplayedPalettes}
            getScrollParent={() => containerReference.current}
          > */}
        {delegations.length > 0 ? delegations : <NoItems text="No fans" />}
        {/* </InfiniteScroll>
        </div> */}
      </Table.Body>
    </Table>
  );
}

export default Fans;

Neighbours