diff --git a/apps/governance-e2e/src/integration/view/proposal.cy.ts b/apps/governance-e2e/src/integration/view/proposal.cy.ts index 20eab7796..0c98565a3 100644 --- a/apps/governance-e2e/src/integration/view/proposal.cy.ts +++ b/apps/governance-e2e/src/integration/view/proposal.cy.ts @@ -37,11 +37,39 @@ context( }); // 3002-PROP-023 3004-PMAC-002 3005-PASN-002 3006-PASC-002 3007-PNEC-002 3008-PFRO-003 - it('should have button for link to more information on proposals', function () { - const proposalsUrl = 'https://docs.vega.xyz/mainnet/tutorials/proposals'; - cy.getByTestId('new-proposal-link') - .find('a') - .should('have.attr', 'href', proposalsUrl); + it('new proposal page should have button for link to more information on proposals', function () { + cy.getByTestId('new-proposal-link').click(); + cy.url().should('include', '/proposals/propose/raw'); + cy.contains('To see Explorer data on proposals visit').within(() => { + cy.getByTestId('external-link').should( + 'have.attr', + 'href', + 'https://explorer.fairground.wtf/governance' + ); + }); + cy.contains( + '1. Sense check your proposal with the community on the forum:' + ).within(() => { + cy.getByTestId('external-link').should( + 'have.attr', + 'href', + 'https://community.vega.xyz/c/governance/25' + ); + }); + cy.contains( + '2. Use the appropriate proposal template in the docs:' + ).within(() => { + cy.getByTestId('external-link').should( + 'have.attr', + 'href', + 'https://docs.vega.xyz/mainnet/tutorials/proposals' + ); + }); + cy.contains('Connect your wallet to submit a proposal').should( + 'be.visible' + ); + cy.getByTestId('connect-to-vega-wallet-btn').should('exist'); + navigateTo(navigation.proposals); }); it('should be able to see a working link for - find out more about Vega governance', function () { diff --git a/apps/governance/src/i18n/translations/dev.json b/apps/governance/src/i18n/translations/dev.json index 423fd080e..c26283560 100644 --- a/apps/governance/src/i18n/translations/dev.json +++ b/apps/governance/src/i18n/translations/dev.json @@ -708,7 +708,7 @@ "NewAssetProposal": "New asset proposal", "UpdateAssetProposal": "Update asset proposal", "NewFreeformProposal": "New freeform proposal", - "NewRawProposal": "New raw proposal", + "NewRawProposal": "New proposal", "MinProposalRequirements": "You must have at least {{value}} VEGA associated to make a proposal", "MinProposalVoteRequirements": "You must have at least {{value}} VEGA associated to vote on this proposal", "totalSupply": "Total Supply", @@ -870,5 +870,9 @@ "Upgraded at": "Upgraded at", "dataIsIdentical": "Data is identical", "updatesToMarket": "Updates to market", - "viewAsParty": "View as party" + "viewAsParty": "View as party", + "HowToPropose": "How to make a proposal", + "HowToProposeRawStep1": "1. Sense check your proposal with the community on the forum:", + "HowToProposeRawStep2": "2. Use the appropriate proposal template in the docs:", + "HowToProposeRawStep3": "3. Submit on-chain below" } diff --git a/apps/governance/src/routes/proposals/components/proposals-list/proposals-list.tsx b/apps/governance/src/routes/proposals/components/proposals-list/proposals-list.tsx index d70543283..91322b088 100644 --- a/apps/governance/src/routes/proposals/components/proposals-list/proposals-list.tsx +++ b/apps/governance/src/routes/proposals/components/proposals-list/proposals-list.tsx @@ -7,18 +7,13 @@ import { ProposalsListItem } from '../proposals-list-item'; import { ProtocolUpgradeProposalsListItem } from '../protocol-upgrade-proposals-list-item/protocol-upgrade-proposals-list-item'; import { ProposalsListFilter } from '../proposals-list-filter'; import Routes from '../../../routes'; -import { - Button, - Toggle, - VegaIcon, - VegaIconNames, -} from '@vegaprotocol/ui-toolkit'; +import { Button, Toggle } from '@vegaprotocol/ui-toolkit'; import { Link } from 'react-router-dom'; import { ExternalLink } from '@vegaprotocol/ui-toolkit'; import type { ProposalQuery } from '../../proposal/__generated__/Proposal'; import type { ProposalFieldsFragment } from '../../proposals/__generated__/Proposals'; import type { ProtocolUpgradeProposalFieldsFragment } from '@vegaprotocol/proposals'; -import { DocsLinks, ExternalLinks } from '@vegaprotocol/environment'; +import { ExternalLinks } from '@vegaprotocol/environment'; interface ProposalsListProps { proposals: Array; @@ -145,18 +140,13 @@ export const ProposalsList = ({ title={t('pageTitleProposals')} /> - {DocsLinks && ( -
- - - -
- )} +
+ + + +

diff --git a/apps/governance/src/routes/proposals/propose/raw/propose-raw.tsx b/apps/governance/src/routes/proposals/propose/raw/propose-raw.tsx index ed9f40a7b..dbc002619 100644 --- a/apps/governance/src/routes/proposals/propose/raw/propose-raw.tsx +++ b/apps/governance/src/routes/proposals/propose/raw/propose-raw.tsx @@ -1,12 +1,17 @@ import { useForm } from 'react-hook-form'; import { useTranslation } from 'react-i18next'; -import { useEnvironment, DocsLinks } from '@vegaprotocol/environment'; -import { Heading } from '../../../../components/heading'; +import { + useEnvironment, + DocsLinks, + ExternalLinks, +} from '@vegaprotocol/environment'; +import { Heading, SubHeading } from '../../../../components/heading'; import { AsyncRenderer, ExternalLink, FormGroup, InputError, + RoundedWrapper, TextArea, } from '@vegaprotocol/ui-toolkit'; import { validateJson } from '@vegaprotocol/utils'; @@ -79,15 +84,6 @@ export const ProposeRaw = () => { spamProtectionMin={params.spam_protection_proposal_min_tokens} /> - {DocsLinks && ( -

- {t('ProposalTermsText')} - - {DocsLinks.PROPOSALS_GUIDE} - -

- )} - {VEGA_EXPLORER_URL && (

{t('MoreProposalsInfo')}{' '} @@ -98,12 +94,44 @@ export const ProposeRaw = () => {

)} +
+ + +
    +
  • + {t('HowToProposeRawStep1')}{' '} + {ExternalLinks && ( + + + {ExternalLinks.PROPOSALS_FORUM} + + + )} +
  • +
  • + {t('HowToProposeRawStep2')}{' '} + {DocsLinks && ( + + + {DocsLinks.PROPOSALS_GUIDE} + + + )} +
  • +
  • {t('HowToProposeRawStep3')}
  • +
+
+
+
- +