From 2d325ec242c30632b0ee287446c34a1fb77f3cb3 Mon Sep 17 00:00:00 2001
From: Noah Litvin <335975+noahlitvin@users.noreply.github.com>
Date: Tue, 16 Apr 2024 12:45:06 -0400
Subject: [PATCH] fix(website): cannonfile diff (#911)
---
.../Deploy/TransactionDetailsPage.tsx | 26 +++++++++++--------
.../features/Deploy/TransactionDisplay.tsx | 24 ++++++++++-------
2 files changed, 30 insertions(+), 20 deletions(-)
diff --git a/packages/website/src/features/Deploy/TransactionDetailsPage.tsx b/packages/website/src/features/Deploy/TransactionDetailsPage.tsx
index bde00c0b9..2b203b1bd 100644
--- a/packages/website/src/features/Deploy/TransactionDetailsPage.tsx
+++ b/packages/website/src/features/Deploy/TransactionDetailsPage.tsx
@@ -83,7 +83,7 @@ const TransactionDetailsPage: FC<{
const { nonce: safeNonce, staged, stagedQuery } = useSafeTransactions(safe);
- const verify = parsedNonce >= safeNonce;
+ const isTransactionExecuted = parsedNonce < safeNonce;
const history = useExecutedTransactions(safe);
@@ -111,7 +111,7 @@ const TransactionDetailsPage: FC<{
const hintData = parseHintedMulticall(safeTxn?.data as any);
- const allowPublishing = hintData?.type == 'deploy';
+ const queuedWithGitOps = hintData?.type == 'deploy';
const cannonPackage = useCannonPackage(
hintData?.cannonPackage
@@ -141,7 +141,7 @@ const TransactionDetailsPage: FC<{
);
let prevDeployGitHash: string;
- if (allowPublishing) {
+ if (queuedWithGitOps) {
prevDeployGitHash =
(hintData?.prevGitRepoHash || hintData?.gitRepoHash) ?? '';
} else {
@@ -181,7 +181,10 @@ const TransactionDetailsPage: FC<{
useEffect(
() => buildInfo.doBuild(),
- [verify && (!prevDeployGitHash || prevCannonDeployInfo.ipfsQuery.isFetched)]
+ [
+ !isTransactionExecuted &&
+ (!prevDeployGitHash || prevCannonDeployInfo.ipfsQuery.isFetched),
+ ]
);
// compare proposed build info with expected transaction batch
@@ -251,7 +254,7 @@ const TransactionDetailsPage: FC<{
cannonPackage={cannonPackage}
safeTxn={safeTxn}
published={existingRegistryUrl == hintData?.cannonPackage}
- publishable={allowPublishing}
+ publishable={queuedWithGitOps}
signers={signers}
threshold={threshold}
/>
@@ -268,8 +271,9 @@ const TransactionDetailsPage: FC<{
@@ -324,7 +328,7 @@ const TransactionDetailsPage: FC<{
))}
- {verify && remainingSignatures > 0 && (
+ {!isTransactionExecuted && remainingSignatures > 0 && (
{remainingSignatures} additional{' '}
{remainingSignatures === 1 ? 'signature' : 'signatures'}{' '}
@@ -332,12 +336,12 @@ const TransactionDetailsPage: FC<{
)}
- {verify && stager.alreadySigned && (
+ {!isTransactionExecuted && stager.alreadySigned && (
Transaction signed
)}
- {verify && !stager.alreadySigned && (
+ {!isTransactionExecuted && !stager.alreadySigned && (
{account.isConnected &&
walletChainId === safe.chainId ? (
@@ -400,7 +404,7 @@ const TransactionDetailsPage: FC<{
)}
- {verify && allowPublishing && (
+ {!isTransactionExecuted && queuedWithGitOps && (
)}
- {allowPublishing && (
+ {queuedWithGitOps && (
{
export function TransactionDisplay(props: {
safeTxn: SafeTransaction;
safe: SafeDefinition;
- allowPublishing?: boolean;
+ queuedWithGitOps?: boolean;
showQueueSource?: boolean;
+ isTransactionExecuted?: boolean;
}) {
const { isOpen, onOpen, onClose } = useDisclosure();
const hintData = parseHintedMulticall(props.safeTxn?.data);
@@ -66,11 +67,12 @@ export function TransactionDisplay(props: {
hintData?.gitRepoUrl ?? ''
);
- let prevDeployGitHash: string =
- (hintData?.prevGitRepoHash || hintData?.gitRepoHash) ?? '';
+ // Determine whether we should use the hint data or the previous git info query
+ let prevDeployGitHash: string = hintData?.prevGitRepoHash ?? '';
if (
- !props.allowPublishing &&
- prevDeployHashQuery.data &&
+ props.queuedWithGitOps &&
+ !props.isTransactionExecuted &&
+ prevDeployHashQuery.data?.length &&
prevDeployHashQuery.data[0].result &&
((prevDeployHashQuery.data[0].result as any).length as number) > 2
) {
@@ -117,7 +119,7 @@ export function TransactionDisplay(props: {
return (
{props.showQueueSource &&
- (props.allowPublishing ? (
+ (props.queuedWithGitOps ? (
<>
These transactions were generated by{' '}
-
- modifying {diffFiles?.length} cannonfiles
- {' '}
+ {diffFiles?.length ? (
+
+ modifying {diffFiles?.length} cannonfiles
+
+ ) : (
+ 'modifying cannonfiles'
+ )}{' '}
in{' '}
this repository