From 3557df59bc499eeadfd4f63d163702679bd6e960 Mon Sep 17 00:00:00 2001 From: leochen Date: Wed, 23 Oct 2024 10:59:04 +0800 Subject: [PATCH] Fix multisig approvals count, #4919 --- .../components/multisigManagePrompt.js | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/packages/next-common/components/overview/accountInfo/components/multisigManagePrompt.js b/packages/next-common/components/overview/accountInfo/components/multisigManagePrompt.js index 67e4d8a9a8..1ee4fb5d50 100644 --- a/packages/next-common/components/overview/accountInfo/components/multisigManagePrompt.js +++ b/packages/next-common/components/overview/accountInfo/components/multisigManagePrompt.js @@ -6,6 +6,7 @@ import Link from "next/link"; import { useChain } from "next-common/context/chain"; import { fetchMyMultisigsCount, + fetchMyMultisigs, myMultisigsCountSelector, } from "next-common/store/reducers/multisigSlice"; import { useDispatch, useSelector } from "react-redux"; @@ -25,11 +26,6 @@ const getNeedApprovalCount = (multisigs, address) => { }; function ManageLink({ manageContent }) { - const pathname = usePathname(); - if (pathname.startsWith("/account/multisigs")) { - return null; - } - return ( <>  Manage {manageContent}  @@ -47,6 +43,9 @@ export default function MultisigManagePrompt() { const myMultisigsCount = useSelector(myMultisigsCountSelector) || 0; const myMultisigs = useSelector(myMultisigsSelector); const { items: multisigs = [], total = 0 } = myMultisigs || {}; + const pathname = usePathname(); + + const isAccountMultisigPage = pathname.startsWith("/account/multisigs"); const settings = getChainSettings(chain); @@ -56,13 +55,17 @@ export default function MultisigManagePrompt() { } return getNeedApprovalCount(multisigs, realAddress); - }, [multisigs, total, realAddress]); + }, [multisigs, realAddress, total]); useEffect(() => { - if (settings?.multisigApiPrefix) { + if (settings?.multisigApiPrefix && realAddress) { dispatch(fetchMyMultisigsCount(chain, realAddress)); + + if (!isAccountMultisigPage) { + dispatch(fetchMyMultisigs(chain, realAddress)); + } } - }, [dispatch, chain, realAddress, settings]); + }, [dispatch, chain, realAddress, settings, isAccountMultisigPage]); const promptContent = useMemo(() => { if (!settings?.multisigApiPrefix || myMultisigsCount === 0) { @@ -80,10 +83,10 @@ export default function MultisigManagePrompt() { You have {myMultisigsCount} active {transactionContent},   {needApprovalCount} of   {manageContent} need your approval. - + {!isAccountMultisigPage && } ); - }, [myMultisigsCount, needApprovalCount, settings]); + }, [myMultisigsCount, needApprovalCount, settings, isAccountMultisigPage]); return promptContent; }