diff --git a/src/components/proposals/ProposalDetailPage.tsx b/src/components/proposals/ProposalDetailPage.tsx index 1a34574..cc7fd1f 100644 --- a/src/components/proposals/ProposalDetailPage.tsx +++ b/src/components/proposals/ProposalDetailPage.tsx @@ -217,8 +217,12 @@ const ApprovalCard: React.FC<{ )} - } - isInline - title={t('Action failed')} - variant="danger" + + - {actionError} - - )} + + + + + + + {proposal.metadata.name} + + + + + + + -
- {visibleTabs.map((id) => ( - - ))} -
-
- {effectiveTab === 'overview' && ( - setEscalateOpen(false)} proposal={proposal} - latestExecutionResult={latestExecutionResult} - latestVerificationResult={latestVerificationResult} /> )} - {effectiveTab === 'proposal' && ( - - )} - {effectiveTab === 'result' && ( - - )} - {effectiveTab === 'verification' && ( - setEscalateOpen(true)} - proposal={proposal} - verificationApproval={verificationApproval} - /> - )} - {effectiveTab === 'escalation' && ( - + + {actionError && ( + + {t('Close')} + + } + isInline + title={t('Action failed')} + variant="danger" + > + {actionError} + )} -
-
+ +
+ {visibleTabs.map((id) => ( + + ))} +
+
+ {effectiveTab === 'overview' && ( + + )} + {effectiveTab === 'proposal' && ( + + )} + {effectiveTab === 'result' && ( + + )} + {effectiveTab === 'verification' && ( + setEscalateOpen(true)} + proposal={proposal} + verificationApproval={verificationApproval} + /> + )} + {effectiveTab === 'escalation' && ( + + )} +
+ ); }; diff --git a/src/hooks/useStageApproval.ts b/src/hooks/useStageApproval.ts index ae7c250..9f892ec 100644 --- a/src/hooks/useStageApproval.ts +++ b/src/hooks/useStageApproval.ts @@ -91,5 +91,15 @@ export function useStageApproval( const clearError = React.useCallback(() => setError(null), []); - return { needsApproval: needs, stageStatus: status, approve, deny, inProgress, error, clearError, canApprove, canApproveLoading }; + return { + needsApproval: needs, + stageStatus: status, + approve, + deny, + inProgress, + error, + clearError, + canApprove, + canApproveLoading, + }; } diff --git a/src/models/proposal.ts b/src/models/proposal.ts index f8eebd1..7a3f2b7 100644 --- a/src/models/proposal.ts +++ b/src/models/proposal.ts @@ -215,7 +215,14 @@ export type ApprovalStageStatus = { conditions?: ProposalCondition[]; }; +export type ApproverInfo = { + username?: string; + uid?: string; + approvedAt?: string; +}; + export type ProposalApprovalSpec = { + approver?: ApproverInfo; stages?: ApprovalStage[]; };