From bc2b72a57abe6be7fc9305f4f3d63f1bdc92e2c9 Mon Sep 17 00:00:00 2001 From: asiaznik Date: Fri, 1 Dec 2023 17:22:27 +0100 Subject: [PATCH] fix(governance): update asset proposal --- .../proposal-asset-details.tsx | 3 + .../components/proposal/proposal.tsx | 5 +- libs/assets/src/lib/asset-details-table.tsx | 73 +++++++++++++++++-- 3 files changed, 73 insertions(+), 8 deletions(-) diff --git a/apps/governance/src/routes/proposals/components/proposal-asset-details/proposal-asset-details.tsx b/apps/governance/src/routes/proposals/components/proposal-asset-details/proposal-asset-details.tsx index d5805780a..de620c162 100644 --- a/apps/governance/src/routes/proposals/components/proposal-asset-details/proposal-asset-details.tsx +++ b/apps/governance/src/routes/proposals/components/proposal-asset-details/proposal-asset-details.tsx @@ -7,8 +7,10 @@ import type { AssetFieldsFragment } from '@vegaprotocol/assets'; export const ProposalAssetDetails = ({ asset, + originalAsset, }: { asset: AssetFieldsFragment; + originalAsset?: AssetFieldsFragment; }) => { const { t } = useTranslation(); const [showAssetDetails, setShowAssetDetails] = useState(false); @@ -27,6 +29,7 @@ export const ProposalAssetDetails = ({
- +
)} diff --git a/libs/assets/src/lib/asset-details-table.tsx b/libs/assets/src/lib/asset-details-table.tsx index 1d30dbf32..fc9394691 100644 --- a/libs/assets/src/lib/asset-details-table.tsx +++ b/libs/assets/src/lib/asset-details-table.tsx @@ -18,7 +18,7 @@ type Rows = { key: AssetDetail; label: string; tooltip: string; - value: (asset: Asset) => ReactNode | undefined; + value: (asset: Asset, orignalAsset?: Asset) => ReactNode | undefined; valueTooltip?: (asset: Asset) => string | null | undefined; }[]; @@ -52,6 +52,21 @@ const num = (asset: Asset, n: string | undefined | null) => { return addDecimalsFormatNumber(n, asset.decimals); }; +const Diff = ({ + oldValue, + newValue, +}: { + oldValue: ReactNode; + newValue: ReactNode; +}) => ( + + + {oldValue} + + {newValue} + +); + export const useRows = () => { const t = useT(); const AssetTypeMapping = useAssetTypeMapping(); @@ -103,7 +118,14 @@ export const useRows = () => { key: AssetDetail.QUANTUM, label: t('Quantum'), tooltip: t('The minimum economically meaningful amount of the asset'), - value: (asset) => num(asset, asset.quantum), + value: (asset, originalAsset) => { + const value = num(asset, asset.quantum); + if (originalAsset && originalAsset.quantum !== asset.quantum) { + const original = num(originalAsset, originalAsset.quantum); + return ; + } + return value; + }, }, { key: AssetDetail.STATUS, @@ -143,8 +165,24 @@ export const useRows = () => { tooltip: t('WITHDRAW_THRESHOLD_TOOLTIP_TEXT', { defaultValue: WITHDRAW_THRESHOLD_TOOLTIP_TEXT, }), - value: (asset) => - num(asset, (asset.source as Schema.ERC20).withdrawThreshold), + value: (asset, originalAsset) => { + const value = num( + asset, + (asset.source as Schema.ERC20).withdrawThreshold + ); + if ( + originalAsset && + (originalAsset.source as Schema.ERC20).withdrawThreshold !== + (asset.source as Schema.ERC20).withdrawThreshold + ) { + const original = num( + asset, + (originalAsset.source as Schema.ERC20).withdrawThreshold + ); + return ; + } + return value; + }, }, { key: AssetDetail.LIFETIME_LIMIT, @@ -152,8 +190,26 @@ export const useRows = () => { tooltip: t( 'The lifetime deposit limit per address. Note: this is a temporary measure that can be changed or removed through governance' ), - value: (asset) => - num(asset, (asset.source as Schema.ERC20).lifetimeLimit), + value: (asset, originalAsset) => { + const value = num( + asset, + (asset.source as Schema.ERC20).lifetimeLimit + ); + + if ( + originalAsset && + (originalAsset.source as Schema.ERC20).lifetimeLimit !== + (asset.source as Schema.ERC20).lifetimeLimit + ) { + const original = num( + asset, + (originalAsset.source as Schema.ERC20).lifetimeLimit + ); + return ; + } + + return value; + }, }, { key: AssetDetail.MAX_FAUCET_AMOUNT_MINT, @@ -261,10 +317,13 @@ export const testId = (detail: AssetDetail, field: 'label' | 'value') => export type AssetDetailsTableProps = { asset: Asset; + originalAsset?: Asset; + omitRows?: AssetDetail[]; } & Omit; export const AssetDetailsTable = ({ asset, + originalAsset, omitRows = [], ...props }: AssetDetailsTableProps) => { @@ -275,7 +334,7 @@ export const AssetDetailsTable = ({ const details = useRows().map((r) => ({ ...r, - value: r.value(asset), + value: r.value(asset, originalAsset), valueTooltip: r.valueTooltip?.(asset), }));