fix(governance): fix market info not showing in proposals (#6104)

This commit is contained in:
Matthew Russell 2024-03-28 11:09:40 +00:00 committed by GitHub
parent df21996707
commit ebb0db3b37
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 38 additions and 21 deletions

View File

@ -47,7 +47,7 @@ export const SubHeading = ({
return ( return (
<h2 <h2
className={classNames('text-2xl font-alpha calt uppercase break-words', { className={classNames('text-2xl font-alpha calt break-words', {
'mx-auto': centerContent, 'mx-auto': centerContent,
'mb-0': !marginBottom, 'mb-0': !marginBottom,
'mb-4': marginBottom, 'mb-4': marginBottom,

View File

@ -50,7 +50,7 @@ export const useMarketDataDialogStore = create<MarketDataDialogState>(
const marketDataHeaderStyles = const marketDataHeaderStyles =
'font-alpha calt text-base border-b border-vega-dark-200 mt-2 py-2'; 'font-alpha calt text-base border-b border-vega-dark-200 mt-2 py-2';
export const ProposalMarketData = ({ proposalId }: { proposalId: string }) => { export const ProposalMarketData = ({ marketId }: { marketId: string }) => {
const { t } = useTranslation(); const { t } = useTranslation();
const { isOpen, open, close } = useMarketDataDialogStore(); const { isOpen, open, close } = useMarketDataDialogStore();
const [showDetails, setShowDetails] = useState(false); const [showDetails, setShowDetails] = useState(false);
@ -59,7 +59,7 @@ export const ProposalMarketData = ({ proposalId }: { proposalId: string }) => {
dataProvider: marketInfoProvider, dataProvider: marketInfoProvider,
skipUpdates: true, skipUpdates: true,
variables: { variables: {
marketId: proposalId, marketId: marketId,
}, },
}); });
@ -72,7 +72,7 @@ export const ProposalMarketData = ({ proposalId }: { proposalId: string }) => {
}, },
}); });
if (!marketData || !parentMarketData) { if (!marketData) {
return null; return null;
} }
@ -134,13 +134,13 @@ export const ProposalMarketData = ({ proposalId }: { proposalId: string }) => {
<h2 className={marketDataHeaderStyles}>{t('Key details')}</h2> <h2 className={marketDataHeaderStyles}>{t('Key details')}</h2>
<KeyDetailsInfoPanel <KeyDetailsInfoPanel
market={marketData} market={marketData}
parentMarket={parentMarketData} parentMarket={parentMarketData ? parentMarketData : undefined}
/> />
<h2 className={marketDataHeaderStyles}>{t('Instrument')}</h2> <h2 className={marketDataHeaderStyles}>{t('Instrument')}</h2>
<InstrumentInfoPanel <InstrumentInfoPanel
market={marketData} market={marketData}
parentMarket={parentMarketData} parentMarket={parentMarketData ? parentMarketData : undefined}
/> />
{settlementData && {settlementData &&
@ -156,7 +156,7 @@ export const ProposalMarketData = ({ proposalId }: { proposalId: string }) => {
isParentSettlementDataEqual || isParentSettlementDataEqual ||
isParentSettlementScheduleDataEqual isParentSettlementScheduleDataEqual
? undefined ? undefined
: parentMarketData : parentMarketData || undefined
} }
/> />
</> </>
@ -169,7 +169,9 @@ export const ProposalMarketData = ({ proposalId }: { proposalId: string }) => {
market={marketData} market={marketData}
type="settlementData" type="settlementData"
parentMarket={ parentMarket={
isParentSettlementDataEqual ? undefined : parentMarketData isParentSettlementDataEqual
? undefined
: parentMarketData || undefined
} }
/> />
@ -185,7 +187,7 @@ export const ProposalMarketData = ({ proposalId }: { proposalId: string }) => {
parentMarket={ parentMarket={
isParentTerminationDataEqual isParentTerminationDataEqual
? undefined ? undefined
: parentMarketData : parentMarketData || undefined
} }
/> />
</div> </div>
@ -203,7 +205,7 @@ export const ProposalMarketData = ({ proposalId }: { proposalId: string }) => {
parentMarket={ parentMarket={
isParentSettlementScheduleDataEqual isParentSettlementScheduleDataEqual
? undefined ? undefined
: parentMarketData : parentMarketData || undefined
} }
/> />
</div> </div>
@ -217,19 +219,19 @@ export const ProposalMarketData = ({ proposalId }: { proposalId: string }) => {
<h2 className={marketDataHeaderStyles}>{t('Settlement assets')}</h2> <h2 className={marketDataHeaderStyles}>{t('Settlement assets')}</h2>
<SettlementAssetInfoPanel <SettlementAssetInfoPanel
market={marketData} market={marketData}
parentMarket={parentMarketData} parentMarket={parentMarketData || undefined}
/> />
<h2 className={marketDataHeaderStyles}>{t('Metadata')}</h2> <h2 className={marketDataHeaderStyles}>{t('Metadata')}</h2>
<MetadataInfoPanel <MetadataInfoPanel
market={marketData} market={marketData}
parentMarket={parentMarketData} parentMarket={parentMarketData || undefined}
/> />
<h2 className={marketDataHeaderStyles}>{t('Risk model')}</h2> <h2 className={marketDataHeaderStyles}>{t('Risk model')}</h2>
<RiskModelInfoPanel <RiskModelInfoPanel
market={marketData} market={marketData}
parentMarket={parentMarketData} parentMarket={parentMarketData || undefined}
/> />
<h2 className={marketDataHeaderStyles}> <h2 className={marketDataHeaderStyles}>
@ -237,13 +239,13 @@ export const ProposalMarketData = ({ proposalId }: { proposalId: string }) => {
</h2> </h2>
<MarginScalingFactorsPanel <MarginScalingFactorsPanel
market={marketData} market={marketData}
parentMarket={parentMarketData} parentMarket={parentMarketData || undefined}
/> />
<h2 className={marketDataHeaderStyles}>{t('Risk factors')}</h2> <h2 className={marketDataHeaderStyles}>{t('Risk factors')}</h2>
<RiskFactorsInfoPanel <RiskFactorsInfoPanel
market={marketData} market={marketData}
parentMarket={parentMarketData} parentMarket={parentMarketData || undefined}
/> />
{showParentPriceMonitoringBounds && ( {showParentPriceMonitoringBounds && (
@ -268,14 +270,14 @@ export const ProposalMarketData = ({ proposalId }: { proposalId: string }) => {
</h2> </h2>
<LiquidityMonitoringParametersInfoPanel <LiquidityMonitoringParametersInfoPanel
market={marketData} market={marketData}
parentMarket={parentMarketData} parentMarket={parentMarketData || undefined}
/> />
<h2 className={marketDataHeaderStyles}> <h2 className={marketDataHeaderStyles}>
{t('Liquidity price range')} {t('Liquidity price range')}
</h2> </h2>
<LiquidityPriceRangeInfoPanel <LiquidityPriceRangeInfoPanel
market={marketData} market={marketData}
parentMarket={parentMarketData} parentMarket={parentMarketData || undefined}
/> />
<h2 className={marketDataHeaderStyles}> <h2 className={marketDataHeaderStyles}>
@ -283,7 +285,7 @@ export const ProposalMarketData = ({ proposalId }: { proposalId: string }) => {
</h2> </h2>
<LiquiditySLAParametersInfoPanel <LiquiditySLAParametersInfoPanel
market={marketData} market={marketData}
parentMarket={parentMarketData} parentMarket={parentMarketData || undefined}
/> />
</div> </div>
</> </>

View File

@ -17,17 +17,20 @@ import { type ProposalNode } from './proposal-utils';
import { Lozenge } from '@vegaprotocol/ui-toolkit'; import { Lozenge } from '@vegaprotocol/ui-toolkit';
import { Indicator } from './indicator'; import { Indicator } from './indicator';
import { SubHeading } from '../../../../components/heading'; import { SubHeading } from '../../../../components/heading';
import { determineId } from '@vegaprotocol/wallet';
export const ProposalChangeDetails = ({ export const ProposalChangeDetails = ({
proposal, proposal,
terms, terms,
restData, restData,
indicator, indicator,
termsCount = 0,
}: { }: {
proposal: Proposal | BatchProposal; proposal: Proposal | BatchProposal;
terms: ProposalTermsFieldsFragment; terms: ProposalTermsFieldsFragment;
restData: ProposalNode | null; restData: ProposalNode | null;
indicator?: number; indicator?: number;
termsCount?: number;
}) => { }) => {
const { t } = useTranslation(); const { t } = useTranslation();
let details = null; let details = null;
@ -61,7 +64,18 @@ export const ProposalChangeDetails = ({
} }
case 'NewMarket': { case 'NewMarket': {
if (proposal.id) { if (proposal.id) {
details = <ProposalMarketData proposalId={proposal.id} />; let marketId = proposal.id;
// TODO: when https://github.com/vegaprotocol/vega/issues/11005 gets merged
// this will need to be updated to loop forward from 0. Right now subProposals
// are returned (when using GQL) in the reverse order
if (proposal.__typename === 'BatchProposal') {
for (let i = termsCount - 1; i >= 0; i--) {
marketId = determineId(marketId);
}
}
details = <ProposalMarketData marketId={marketId} />;
} }
break; break;
} }
@ -69,7 +83,7 @@ export const ProposalChangeDetails = ({
if (proposal.id) { if (proposal.id) {
details = ( details = (
<div className="flex flex-col gap-4"> <div className="flex flex-col gap-4">
<ProposalMarketData proposalId={proposal.id} /> <ProposalMarketData marketId={proposal.id} />
<ProposalMarketChanges <ProposalMarketChanges
indicator={indicator} indicator={indicator}
marketId={terms.change.marketId} marketId={terms.change.marketId}

View File

@ -78,6 +78,7 @@ export const Proposal = ({ proposal, restData }: ProposalProps) => {
proposal={proposal} proposal={proposal}
terms={p.terms} terms={p.terms}
restData={restData} restData={restData}
termsCount={proposal.subProposals?.length}
/> />
); );
}) })

View File

@ -13,7 +13,7 @@
} }
h1 { h1 {
@apply text-2xl text-white uppercase mb-4; @apply text-2xl text-white mb-4;
} }
h2 { h2 {
@apply text-xl text-white mb-4; @apply text-xl text-white mb-4;