diff --git a/packages/apps-config/src/endpoints/testing.ts b/packages/apps-config/src/endpoints/testing.ts index 78f6dd3478..ef26f1aaa5 100644 --- a/packages/apps-config/src/endpoints/testing.ts +++ b/packages/apps-config/src/endpoints/testing.ts @@ -828,7 +828,7 @@ export const testChains: EndpointOption[] = [ { info: 'tangle', providers: { - Webb: 'wss://tangle-archive.webb.tools' + // Webb: 'wss://tangle-archive.webb.tools' // https://github.com/polkadot-js/apps/issues/9104 }, text: 'Tangle Alpha', ui: { diff --git a/packages/page-accounts/src/Accounts/Account.tsx b/packages/page-accounts/src/Accounts/Account.tsx index 3a0ddba987..122caec640 100644 --- a/packages/page-accounts/src/Accounts/Account.tsx +++ b/packages/page-accounts/src/Accounts/Account.tsx @@ -544,7 +544,7 @@ function Account ({ account: { address, meta }, className = '', delegation, filt proxiedAccount={address} /> )} - {isMultisigOpen && multiInfos && ( + {isMultisig && isMultisigOpen && multiInfos && multiInfos.length !== 0 && ( )} - {multiInfos && multiInfos.length !== 0 && ( + {isMultisig && multiInfos && multiInfos.length !== 0 && ( ([]); - const [trigger, incTrigger] = useIncrement(); + const [multiInfos, setMultiInfos] = useState<[H256, Multisig][] | undefined>(); + const [trigger, incTrigger] = useIncrement(1); const mountedRef = useIsMountedRef(); // increment the trigger by looking at all events @@ -21,29 +21,27 @@ function useMultisigApprovalsImpl (address: string): [H256, Multisig][] { // - increment the trigger when at least one matches our address useEffect((): void => { events - .filter(({ record: { event: { section } } }) => section === 'multisig') - .reduce((hasMultisig: boolean, { record: { event: { data } } }) => - data.reduce((hasMultisig: boolean, item) => - hasMultisig || (item.toRawType() === 'AccountId' && item.eq(address)), - hasMultisig), - false) && incTrigger(); + .some(({ record: { event: { data, section } } }) => + section === 'multisig' && + data.some((item) => + item.toRawType() === 'AccountId' && + item.eq(address) + ) + ) && incTrigger(); }, [address, events, incTrigger]); // query all the entries for the multisig, extracting approvals with their hash useEffect((): void => { - const multiModule = api.query.multisig || api.query.utility; - - multiModule && multiModule.multisigs && - multiModule.multisigs - .entries(address) - .then((infos: [StorageKey, Option][]): void => { - mountedRef.current && setMultiInfos( - infos - .filter(([, opt]) => opt.isSome) - .map(([key, opt]) => [key.args[1] as H256, opt.unwrap()]) - ); - }) - .catch(console.error); + trigger && api.query.multisig?.multisigs + .entries(address) + .then((infos: [StorageKey, Option][]): void => { + mountedRef.current && setMultiInfos( + infos + .filter(([, opt]) => opt.isSome) + .map(([key, opt]) => [key.args[1] as H256, opt.unwrap()]) + ); + }) + .catch(console.error); }, [address, api, mountedRef, trigger]); return multiInfos;