import clsx from 'clsx' import { useTranslation } from 'react-i18next' import { EntityType } from '@dao-dao/types' import { DaoMemberCardProps } from '@dao-dao/types/components/DaoMemberCard' import { abbreviateAddress, formatPercentOf100 } from '@dao-dao/utils' import { useDaoNavHelpers } from '../../hooks' import { ButtonLink } from '../buttons' import { CopyToClipboard } from '../CopyToClipboard' import { ProfileImage } from '../profile' import { TokenAmountDisplay } from '../token' export const DaoMemberCard = ({ address, balance, balanceLabel, votingPowerPercent, loadingEntity, }: DaoMemberCardProps) => { const { t } = useTranslation() const { getDaoPath } = useDaoNavHelpers() const loadingOrHasName = loadingEntity.loading || (loadingEntity.updating && !loadingEntity.data.name) || loadingEntity.data.name const title = loadingOrHasName ? (

{loadingEntity.loading || (loadingEntity.updating && !loadingEntity.data.name) ? '...' : loadingEntity.data.name}

) : (

{abbreviateAddress(address)}

) return (
{/* Image */} {/* Name */}
{!loadingEntity.loading && loadingEntity.data.type === EntityType.Dao ? ( {title} ) : ( title )} {!loadingEntity.loading && loadingEntity.data.type !== EntityType.Dao && ( )}
{/* Voting power */}

{t('title.votingPower')}

{votingPowerPercent.loading ? '...' : formatPercentOf100(votingPowerPercent.data)}

{/* Balance */}

{balanceLabel}

) }