import { Box, Card, CardContent, CardActions } from "@mui/material"; import GovernanceActionCardElement from "../ActionCard/GovernanceActionCardElement"; import GovernanceActionCardIdElement from "../ActionCard/GovernanceActionCardIdElement"; import { encodeCIP129Identifier, getFullGovActionId, getProposalStatus, } from "../../lib/utils"; import { useMetadata } from "../../hooks/useMetadata"; import { GovernanceAction } from "../../types/api"; import GovActionDatesInfo from "./GovActionDatesInfo"; import GovernanceActionStatus from "./GovernanceActionStatus"; import { GOVERNANCE_ACTION_FILTERS } from "../../consts/filters"; import { GovernanceActionCardHeader } from "../ActionCard/GovernanceActionCardHeader"; import AbstractLoader from "../Loaders/GovernanceActionAbstractLoader"; import ViewDetailsLink from "../ActionCard/ViewDetailsLink"; import { useTranslation } from "../../contexts/I18nContext"; interface GovernanceActionCardProps { action: GovernanceAction; } function GovernanceActionCard({ action }: GovernanceActionCardProps) { const { metadata, metadataValid, isMetadataLoading } = useMetadata(action); const { t } = useTranslation(); const idCIP129 = encodeCIP129Identifier({ txID: action?.tx_hash, index: action?.index.toString(16).padStart(2, "0"), bech32Prefix: "gov_action", }); const fullGovActionId = getFullGovActionId(action?.tx_hash, action?.index); const status = getProposalStatus(action?.status); const typeInWords = GOVERNANCE_ACTION_FILTERS.find((filter) => filter.value === action?.type) ?.label || action?.type; const abstract = action.abstract || metadata?.data?.abstract; return ( {metadataValid && ( {!abstract || isMetadataLoading ? ( ) : ( )} )} ); } export default GovernanceActionCard;