From 75ffe6f2ce99e270b1dc84e07a19e28179226c4d Mon Sep 17 00:00:00 2001 From: Ruggero Cino Date: Thu, 11 Apr 2024 10:42:04 +0200 Subject: [PATCH] Only build transaction when execute-proposal modal is open, handle success button click --- .../executeProposalDialog.tsx | 6 ++--- .../useCreateExecuteProposalTransaction.ts | 24 ++++++++++++------- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/src/containers/executeProposalDialog/executeProposalDialog.tsx b/src/containers/executeProposalDialog/executeProposalDialog.tsx index 347dec6f1..99db69812 100644 --- a/src/containers/executeProposalDialog/executeProposalDialog.tsx +++ b/src/containers/executeProposalDialog/executeProposalDialog.tsx @@ -18,16 +18,14 @@ export const ExecuteProposalDialog: React.FC< const {t} = useTranslation(); const {transaction, isLoading: isTransactionLoading} = - useCreateExecuteTransactionProposal(); + useCreateExecuteTransactionProposal({enabled: isOpen}); const sendTransactionResults = useSendExecuteProposalTransaction({ process: executeProposalProcess, transaction, }); - const onSuccessButtonClick = () => { - // - }; + const onSuccessButtonClick = () => onClose?.(); return ( { +export interface IUseCreateExecuteTransactionProposalParams { + /** + * Disables the create transaction hook when set to false. + */ + enabled?: boolean; +} + +export const useCreateExecuteTransactionProposal = ( + params: IUseCreateExecuteTransactionProposalParams +) => { + const {enabled} = params; const {id: proposalId} = useParams(); const {client} = useClient(); @@ -14,6 +24,8 @@ export const useCreateExecuteTransactionProposal = () => { const {data: daoDetails} = useDaoDetailsQuery(); const pluginType = daoDetails?.plugins[0].id as PluginTypes; + const enableHook = enabled !== false && client != null && proposalId != null; + const {data: multisigTransaction, isLoading: isMultisigTransactionLoading} = useCreateExecuteMultisigProposalTransaction( { @@ -21,10 +33,7 @@ export const useCreateExecuteTransactionProposal = () => { proposalId: proposalId as string, }, { - enabled: - client != null && - proposalId != null && - pluginType === 'multisig.plugin.dao.eth', + enabled: enableHook && pluginType === 'multisig.plugin.dao.eth', } ); @@ -37,10 +46,7 @@ export const useCreateExecuteTransactionProposal = () => { proposalId: proposalId as string, }, { - enabled: - client != null && - proposalId != null && - pluginType === 'token-voting.plugin.dao.eth', + enabled: enableHook && pluginType === 'token-voting.plugin.dao.eth', } );