diff --git a/react-app/src/components/ProposalDetailScreen/ProposalHeader.tsx b/react-app/src/components/ProposalDetailScreen/ProposalHeader.tsx
index ad3bc31b..274afc89 100644
--- a/react-app/src/components/ProposalDetailScreen/ProposalHeader.tsx
+++ b/react-app/src/components/ProposalDetailScreen/ProposalHeader.tsx
@@ -46,16 +46,79 @@ const ProposalTitle: React.FC<{ proposal: Proposal }> = ({ proposal }) => {
);
};
-const ProposalStatistics: React.FC<{ proposal: Proposal }> = ({ proposal }) => {
+const ProposalPeriod: React.FC<{ proposal: Proposal }> = ({ proposal }) => {
const {
- votingStartTime,
+ depositEndTime,
+ submitTime,
+ remainingDepositDuration,
+ status,
votingEndTime,
+ votingStartTime,
remainingVotingDuration,
- depositTotal,
- turnout,
- status,
} = proposal;
+ if (status === ProposalStatus.DepositPeriod) {
+ return (
+
+
+
+
+ {depositEndTime ? (
+ ,
+ to: ,
+ }}
+ />
+ ) : (
+ "-"
+ )}
+
+ {remainingDepositDuration && (
+
+
+
+ )}
+
+ );
+ }
+
+ return (
+
+
+
+
+ {votingStartTime && votingEndTime ? (
+ ,
+ to: ,
+ }}
+ />
+ ) : (
+ "-"
+ )}
+
+ {remainingVotingDuration && (
+
+
+
+ )}
+
+ );
+};
+
+const ProposalStatistics: React.FC<{ proposal: Proposal }> = ({ proposal }) => {
+ const { depositTotal, turnout } = proposal;
+
const totalDepositString = useMemo(() => {
if (depositTotal.lt(1)) {
return depositTotal.toFixed(3);
@@ -79,31 +142,7 @@ const ProposalStatistics: React.FC<{ proposal: Proposal }> = ({ proposal }) => {
"gap-y-5"
)}
>
-
-
-
-
- {votingStartTime && votingEndTime ? (
- ,
- to: ,
- }}
- />
- ) : (
- "-"
- )}
-
- {remainingVotingDuration && status === ProposalStatus.VotingPeriod && (
-
-
-
- )}
-
+
{`${totalDepositString} ${CoinDenom}`}
@@ -169,7 +208,7 @@ const ProposalTypeAndProposer: React.FC<{ proposal: Proposal }> = ({
);
};
-enum ProposalPeriod {
+enum ProposalPeriodType {
Voting = "voting",
Deposit = "deposit",
}
@@ -200,7 +239,7 @@ const ProposalActionArea: React.FC
= (props) => {
proposal.depositEndTime &&
isBefore(now, proposal.depositEndTime)
) {
- return ProposalPeriod.Deposit;
+ return ProposalPeriodType.Deposit;
}
if (
@@ -214,7 +253,7 @@ const ProposalActionArea: React.FC = (props) => {
end: proposal.votingEndTime,
})
) {
- return ProposalPeriod.Voting;
+ return ProposalPeriodType.Voting;
}
}
@@ -255,12 +294,12 @@ const ProposalActionArea: React.FC = (props) => {
theme="primary"
className={cn("text-base", "leading-6", "font-medium", "px-6")}
messageID={
- proposalPeriod === ProposalPeriod.Voting
+ proposalPeriod === ProposalPeriodType.Voting
? "ProposalDetail.voteNow"
: "ProposalDetail.deposit"
}
onClick={
- proposalPeriod === ProposalPeriod.Voting
+ proposalPeriod === ProposalPeriodType.Voting
? onVoteClick
: onDepositClick
}
diff --git a/react-app/src/i18n/translations/en.json b/react-app/src/i18n/translations/en.json
index bd5c6f82..fb8f6cf5 100644
--- a/react-app/src/i18n/translations/en.json
+++ b/react-app/src/i18n/translations/en.json
@@ -69,7 +69,9 @@
"Proposal.status.rejected": "Rejected",
"Proposal.status.votingPeriod": "Voting",
"ProposalDetail.copyLink": "Copy Link",
+ "ProposalDetail.dateRange": "{from} to {to}",
"ProposalDetail.deposit": "Deposit",
+ "ProposalDetail.depositPeriod": "Deposit Period",
"ProposalDetail.deposits": "Deposits",
"ProposalDetail.deposits.amount": "Amount",
"ProposalDetail.deposits.delegatedValidators": "Delegated Validators",
@@ -81,6 +83,7 @@
"ProposalDetail.deposits.others": "Others",
"ProposalDetail.deposits.requestState.error": "Failed to fetch proposal deposits, please try again later.",
"ProposalDetail.deposits.total": "Total",
+ "ProposalDetail.durationRemaining": "{duration} left",
"ProposalDetail.govParams.requestState.error": "Failed to fetch governance parameters, please try again later.",
"ProposalDetail.proposal.requestState.empty": "Proposal {id} does not exist.",
"ProposalDetail.proposal.requestState.error": "Failed to fetch proposal, please try again later.",
@@ -104,8 +107,6 @@
"ProposalDetail.votes.voter": "Voter",
"ProposalDetail.votes.voter.noSecurityContact": "Contact information for this validator is not available",
"ProposalDetail.votes.voter.validator": "Validator",
- "ProposalDetail.votingDateRange": "{from} to {to}",
- "ProposalDetail.votingDurationRemaining": "{duration} left",
"ProposalDetail.votingPeriod": "Voting Period",
"ProposalHistory.comment": "Comment",
"ProposalHistory.filters.deposited": "Deposited Proposals",
diff --git a/react-app/src/i18n/translations/zh.json b/react-app/src/i18n/translations/zh.json
index c6e4d897..97a2c2d9 100644
--- a/react-app/src/i18n/translations/zh.json
+++ b/react-app/src/i18n/translations/zh.json
@@ -69,7 +69,9 @@
"Proposal.status.rejected": "Rejected",
"Proposal.status.votingPeriod": "Voting",
"ProposalDetail.copyLink": "Copy Link",
+ "ProposalDetail.dateRange": "{from} to {to}",
"ProposalDetail.deposit": "Deposit",
+ "ProposalDetail.depositPeriod": "Deposit Period",
"ProposalDetail.deposits": "Deposits",
"ProposalDetail.deposits.amount": "Amount",
"ProposalDetail.deposits.delegatedValidators": "Delegated Validators",
@@ -81,6 +83,7 @@
"ProposalDetail.deposits.others": "Others",
"ProposalDetail.deposits.requestState.error": "Failed to fetch proposal deposits, please try again later.",
"ProposalDetail.deposits.total": "Total",
+ "ProposalDetail.durationRemaining": "{duration} left",
"ProposalDetail.govParams.requestState.error": "Failed to fetch governance parameters, please try again later.",
"ProposalDetail.proposal.requestState.empty": "Proposal {id} does not exist.",
"ProposalDetail.proposal.requestState.error": "Failed to fetch proposal, please try again later.",
@@ -104,8 +107,6 @@
"ProposalDetail.votes.voter": "Voter",
"ProposalDetail.votes.voter.noSecurityContact": "Contact information for this validator is not available",
"ProposalDetail.votes.voter.validator": "Validator",
- "ProposalDetail.votingDateRange": "{from} 至 {to}",
- "ProposalDetail.votingDurationRemaining": "剩餘{duration}",
"ProposalDetail.votingPeriod": "Voting Period",
"ProposalHistory.comment": "Comment",
"ProposalHistory.filters.deposited": "Deposited Proposals",