diff --git a/package.json b/package.json index c86a47e..97e8da4 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "ghost-dao-interface", "private": true, - "version": "0.5.1", + "version": "0.5.2", "type": "module", "scripts": { "dev": "vite", diff --git a/src/components/Chip/Chip.jsx b/src/components/Chip/Chip.jsx index a4d9117..f19cbe8 100644 --- a/src/components/Chip/Chip.jsx +++ b/src/components/Chip/Chip.jsx @@ -20,7 +20,7 @@ const StyledMuiChip = styled(MuiChip, { : template === "gray" ? theme.colors.gray[500] : template === "darkGray" - ? theme.colors.gray[600] + ? theme.colors.primary[300] : theme.colors.feedback[template] : theme.palette.mode === "light" ? theme.colors.gray[90] @@ -34,7 +34,7 @@ const StyledMuiChip = styled(MuiChip, { : template === "gray" ? theme.colors.gray[10] : template === "darkGray" - ? theme.colors.gray[90] + ? theme.colors.gray[800] : theme.colors.gray[600], fontWeight: strong ? 700 : 450, }, diff --git a/src/containers/Bond/Bonds.jsx b/src/containers/Bond/Bonds.jsx index e880a4b..20ee595 100644 --- a/src/containers/Bond/Bonds.jsx +++ b/src/containers/Bond/Bonds.jsx @@ -57,7 +57,17 @@ const Bonds = ({ chainId, address, connect }) => { }} > - + + + Active bonds + + + } + > { warmupLength={warmupInfo.expiry - epoch.number} setPreClaimConfirmed={() => setPreClaimConfirmed(true)} /> - + + + Your Bonds + + + } + > Payout Options diff --git a/src/containers/Bridge/Bridge.jsx b/src/containers/Bridge/Bridge.jsx index d159b5f..3fd6340 100644 --- a/src/containers/Bridge/Bridge.jsx +++ b/src/containers/Bridge/Bridge.jsx @@ -291,7 +291,7 @@ const Bridge = ({ chainId, address, config, connect }) => { return ( <> - + { onClick={() => setBridgeAction(!bridgeAction)} />)} { - bridgeAction ? `Bridge $${ghstSymbol}` : "Transaction History" + bridgeAction ? `Bridge-In $${ghstSymbol}` : "Transaction History" } } diff --git a/src/containers/Dex/Dex.jsx b/src/containers/Dex/Dex.jsx index 073d8a7..9ab8196 100644 --- a/src/containers/Dex/Dex.jsx +++ b/src/containers/Dex/Dex.jsx @@ -186,7 +186,7 @@ const Dex = ({ chainId, address, connect }) => { { - + { return ( - + { - + diff --git a/src/containers/Governance/ProposalDetails.jsx b/src/containers/Governance/ProposalDetails.jsx index bff84fa..88a3e06 100644 --- a/src/containers/Governance/ProposalDetails.jsx +++ b/src/containers/Governance/ProposalDetails.jsx @@ -115,13 +115,13 @@ const ProposalDetails = ({ chainId, address }) => { setSelectedDiscussionUrl("dicks")} /> } > - + - + For: {formatNumber(forVotes.toString(), 2)} ({formatNumber(forVotes * HUNDRED / proposalQuorum, 1)}%) - + Against: {formatNumber(againstVotes.toString(), 2)} ({formatNumber(againstVotes * HUNDRED / proposalQuorum, 1)}%) @@ -218,7 +218,7 @@ const VotingTimeline = ({ proposalId, chainId }) => { - + ) } @@ -226,16 +226,33 @@ const VotingTimeline = ({ proposalId, chainId }) => { const VotingTimelineItem = ({ isFirst, isLast, time, message }) => { return ( - + + {message} + + - {!isFirst && } - - {!isLast && } + + + - - {message} - {new Date(time * 1000).toLocaleString()} + + + {new Date(time * 1000).toLocaleString()} + ) diff --git a/src/containers/Governance/components/GovernanceInfoText.jsx b/src/containers/Governance/components/GovernanceInfoText.jsx index 114c516..f551d7f 100644 --- a/src/containers/Governance/components/GovernanceInfoText.jsx +++ b/src/containers/Governance/components/GovernanceInfoText.jsx @@ -9,10 +9,10 @@ const GovernanceInfoText = () => { fontSize="0.875em" lineHeight="15px" > - ghostDAO's adaptive governance system algorithmically sets proposal threshold based on activity. + ghostDAO’s adaptive governance system algorithmically sets minimum collateral based on activity.  Learn more here. diff --git a/src/containers/Governance/components/Metric.jsx b/src/containers/Governance/components/Metric.jsx index 8c39cdd..1b79ad7 100644 --- a/src/containers/Governance/components/Metric.jsx +++ b/src/containers/Governance/components/Metric.jsx @@ -1,6 +1,9 @@ import Metric from "../../../components/Metric/Metric"; import { formatCurrency, formatNumber } from "../../../helpers"; +import { DecimalBigNumber } from "../../../helpers/DecimalBigNumber"; +import { getTokenDecimals } from "../../../hooks/helpers"; +import { useTotalSupply } from "../../../hooks/tokens"; import { useMinQuorum, useProposalThreshold, @@ -8,15 +11,22 @@ import { } from "../../../hooks/governance"; export const MinQuorumPercentage = props => { - const { percentage } = useMinQuorum(props.chainId); + const { numerator, denominator, percentage } = useMinQuorum(props.chainId); + const { totalSupply } = useTotalSupply(props.chainId, "GHST"); + const decimals = getTokenDecimals(props.ghstSymbol); + + const value = new DecimalBigNumber( + (totalSupply?._value ?? 0n) * numerator / denominator, + decimals + ); const _props = { ...props, label: `Min Quorum`, - tooltip: `Minimum quorum needed for proposal to be succeeded.`, + tooltip: `Minimum $${props.ghstSymbol} turnout required for the proposal to become valid`, }; - if (percentage) _props.metric = `${formatNumber(percentage, 2)}%`; + if (percentage) _props.metric = `${formatCurrency(value?.toString(), 2, props.ghstSymbol)} (${formatNumber(percentage * 100, 2)}%)`; else _props.isLoading = true; return ; @@ -28,7 +38,7 @@ export const ProposalThreshold = props => { const _props = { ...props, label: `$${props.ghstSymbol} Threshold`, - tooltip: `Minimum $${props.ghstSymbol} amount to be locked to create proposal.`, + tooltip: `Minimum $${props.ghstSymbol} required to be locked to create a proposal`, }; if (threshold) _props.metric = `${formatCurrency(threshold.toString(), 0, props.ghstSymbol)}`; @@ -43,7 +53,7 @@ export const ProposalsCount = props => { const _props = { ...props, label: `Proposals Count`, - tooltip: `How much proposals already passed.`, + tooltip: `Total proposals created`, }; if (proposalsCount) _props.metric = proposalsCount.toString(); diff --git a/src/containers/Governance/components/ProposalDiscussion.jsx b/src/containers/Governance/components/ProposalDiscussion.jsx index 9bf829b..56d4f54 100644 --- a/src/containers/Governance/components/ProposalDiscussion.jsx +++ b/src/containers/Governance/components/ProposalDiscussion.jsx @@ -7,7 +7,7 @@ const ProposalDiscussion = (linkProps) => { { fontSize="0.875em" lineHeight="15px" > - Important: We display only the 10 most recent proposals. Only one proposal can be active at a time. + Important: Only the 10 most recent proposals are displayed. Only one proposal can be active at a time.   { const isSmallScreen = useScreenSize("md"); const navigate = useNavigate(); + const theme = useTheme(); const [blockNumber, setBlockNumber] = useState(0n); const [selectedDiscussionUrl, setSelectedDiscussionUrl] = useState(undefined); @@ -83,11 +83,17 @@ const ProposalsList = ({ chainId, config }) => { isOpened={isDiscussionModalOpened} closeModal={() => setSelectedDiscussionUrl(undefined)} /> - - - - - + + + Proposals + + + } + > {filteredProposals?.map(proposal => ( { /> ))} + + {proposalsFilter === "active" && + + } ); @@ -112,7 +122,35 @@ const ProposalsList = ({ chainId, config }) => { isOpened={isDiscussionModalOpened} closeModal={() => setSelectedDiscussionUrl(undefined)} /> - + + + Proposals + + + + + Discussion Forum + + + + } + > @@ -128,9 +166,9 @@ const ProposalsList = ({ chainId, config }) => { ))} - + {proposalsFilter === "active" && - + } ); @@ -141,7 +179,7 @@ const ProposalTable = ({ children }) => ( - Proposal ID + Proposal ID Status Discussion Vote Ends @@ -160,7 +198,7 @@ const ProposalRow = ({ proposal, setActive, blockNumber, openProposal, chainId } return ( - + GDP-{proposal.id} diff --git a/src/containers/Governance/helpers.js b/src/containers/Governance/helpers.js index 505d17a..925852d 100644 --- a/src/containers/Governance/helpers.js +++ b/src/containers/Governance/helpers.js @@ -1,7 +1,7 @@ export const convertStatusToTemplate = (status) => { switch (status.toUpperCase()) { case "EXECUTED": - return 'info'; + return 'darkGray'; case "CANCELED": return 'warning'; case "SUCCEEDED": @@ -9,6 +9,6 @@ export const convertStatusToTemplate = (status) => { case "DEFEATED": return 'error'; default: - return 'info'; + return 'darkGray'; } } diff --git a/src/containers/Stake/components/FarmPools.jsx b/src/containers/Stake/components/FarmPools.jsx index d8b24bc..e56943a 100644 --- a/src/containers/Stake/components/FarmPools.jsx +++ b/src/containers/Stake/components/FarmPools.jsx @@ -61,7 +61,17 @@ const FarmPools = ({ chainId }) => { } return ( - + + + Farm Pools + + + } + >
diff --git a/src/containers/WethWrapper/WethWrapper.jsx b/src/containers/WethWrapper/WethWrapper.jsx index 79cbdcd..8656d41 100644 --- a/src/containers/WethWrapper/WethWrapper.jsx +++ b/src/containers/WethWrapper/WethWrapper.jsx @@ -137,7 +137,7 @@ const WethWrapper = ({ chainId, address, config, connect }) => { - +