import { ComponentType, Fragment } from 'react' import { useTranslation } from 'react-i18next' import { LoadingDataWithError, StatefulDaoVotingVaultCardProps, VotingVaultWithInfo, } from '@dao-dao/types' import { ErrorPage } from '../../error' import { GridCardContainer } from '../../GridCardContainer' import { DaoVotingVaultCardLoader } from '../DaoVotingVaultCard' export type NeutronVotingVaultsTabProps = { totalVotingPower: LoadingDataWithError loadingVaults: LoadingDataWithError DaoVotingVaultCard: ComponentType } export const NeutronVotingVaultsTab = ({ totalVotingPower, loadingVaults, DaoVotingVaultCard, }: NeutronVotingVaultsTabProps) => { const { t } = useTranslation() return ( <> {/* header min-height of 3.5rem standardized across all tabs */}

{t('title.votingVaults')}

{t('info.votingVaultsExplanation')}

{loadingVaults.loading ? ( {[...Array(9)].map((_, index) => ( ))} ) : loadingVaults.errored ? ( ) : totalVotingPower.errored ? ( ) : ( <> {loadingVaults.data .filter((vault) => vault.state === 'Active') .sort((a, b) => // Sort real vaults first. a.info.real === b.info.real ? 0 : a.info.real && !b.info.real ? -1 : 1 ) .map((vault) => ( ))} )} ) }