Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,11 @@ export const DashboardGovernanceActionDetails = () => {
const { isMobile } = useScreenDimension();
const { t } = useTranslation();
const { proposalId: txHash } = useParams();

const [isValidating, setIsValidating] = useState(true);
const [metadataStatus, setMetadataStatus] = useState<
MetadataValidationStatus | undefined
>();
const [isMetadataValid, setIsMetadataValid] = useState<boolean | undefined>();
const fullProposalId = txHash && getFullGovActionId(txHash, +index);
const shortenedGovActionId =
txHash && getShortenedGovActionId(txHash, +index);
Expand All @@ -56,16 +60,12 @@ export const DashboardGovernanceActionDetails = () => {
);

useEffect(() => {
if (data?.proposal) {
if (data?.proposal && typeof isMetadataValid !== "boolean") {
setExtendedProposal(data.proposal);
}
}, [data?.proposal]);
}, [data?.proposal, isMetadataValid]);
const vote = (data ?? state)?.vote;

const [isValidating, setIsValidating] = useState(true);
const [metadataStatus, setMetadataStatus] = useState<
MetadataValidationStatus | undefined
>();
const { validateMetadata } = useValidateMutation();

useEffect(() => {
Expand All @@ -74,7 +74,7 @@ export const DashboardGovernanceActionDetails = () => {
const validate = async () => {
setIsValidating(true);

const { status, metadata } = await validateMetadata({
const { status, metadata, valid } = await validateMetadata({
standard: MetadataStandard.CIP108,
url: extendedProposal?.url,
hash: extendedProposal?.metadataHash ?? "",
Expand All @@ -92,9 +92,10 @@ export const DashboardGovernanceActionDetails = () => {

setMetadataStatus(status);
setIsValidating(false);
setIsMetadataValid(valid);
};
validate();
}, [extendedProposal?.url]);
}, [extendedProposal?.url, extendedProposal?.metadataHash]);

useEffect(() => {
const isProposalNotFound =
Expand Down