import { Add, EscalatorWarning, Upgrade } from '@mui/icons-material' import { ComponentType } from 'react' import { useTranslation } from 'react-i18next' import { ButtonLinkProps, ContractVersion, DaoInfo, Feature, LoadingDataWithError, StatefulDaoCardProps, } from '@dao-dao/types' import { useDao } from '../../../contexts' import { useDaoNavHelpers } from '../../../hooks' import { ErrorPage } from '../../error' import { GridCardContainer } from '../../GridCardContainer' import { NoContent } from '../../NoContent' import { Tooltip } from '../../tooltip' import { DaoCardLoader } from '../DaoCard' export interface SubDaosTabProps { DaoCard: ComponentType subDaos: LoadingDataWithError isMember: boolean createSubDaoHref?: string ButtonLink: ComponentType } export const SubDaosTab = ({ DaoCard, subDaos, isMember, createSubDaoHref, ButtonLink, }: SubDaosTabProps) => { const { t } = useTranslation() const dao = useDao() const { getDaoPath } = useDaoNavHelpers() const subDaosSupported = dao.coreVersion === ContractVersion.Gov || dao.supports(Feature.SubDaos) return ( <> {/* header min-height of 3.5rem standardized across all tabs */}

{t('title.subDaos')}

{t('info.subDaoExplanation')}

{t('button.newSubDao')} {t('button.new')}
{!subDaosSupported ? ( ) : subDaos.errored ? ( ) : subDaos.loading || subDaos.data.length > 0 ? ( <>

{subDaos.loading ? t('title.loadingSubDaos') : t('title.numSubDaos', { count: subDaos.data.length })}

{subDaos.loading ? [...Array(3)].map((_, index) => ) : subDaos.data.map((info, index) => ( ))} ) : ( )} ) }