From a298715c6ee746be2eafed627435787e20083cef Mon Sep 17 00:00:00 2001 From: Jaco Date: Fri, 30 Apr 2021 15:10:21 +0300 Subject: [PATCH] useEventTrigger without string specifiers (#5166) * useEventTrigger with section.method string specifiers * Remove string useEventTrigger * Adjust useExtrinsicTrigger * Update packages/react-hooks/src/useExtrinsicTrigger.ts --- packages/page-parachains/src/useProposals.ts | 2 +- packages/react-hooks/src/useEventTrigger.ts | 14 +++++--------- packages/react-hooks/src/useExtrinsicTrigger.ts | 15 +++++---------- 3 files changed, 11 insertions(+), 20 deletions(-) diff --git a/packages/page-parachains/src/useProposals.ts b/packages/page-parachains/src/useProposals.ts index 317c8a6877..262644ab5a 100644 --- a/packages/page-parachains/src/useProposals.ts +++ b/packages/page-parachains/src/useProposals.ts @@ -34,7 +34,7 @@ function extractScheduled (entries: [StorageKey<[SessionIndex]>, ParaId[]][]): S export default function useProposals (): Proposals | undefined { const { api } = useApi(); const mountedRef = useIsMountedRef(); - const trigger = useEventTrigger(['proposeParachain']); + const trigger = useEventTrigger([api.events.proposeParachain?.ProposeParachain]); const proposalIds = useMapKeys(api.query.proposeParachain?.proposals, { at: trigger, transform: extractProposalIds }); const scheduled = useMapEntries(api.query.proposeParachain?.scheduledProposals, { at: trigger, transform: extractScheduled }); const [sessionIndex, approvedIds] = useCallMulti([ diff --git a/packages/react-hooks/src/useEventTrigger.ts b/packages/react-hooks/src/useEventTrigger.ts index 062dba90fb..f43868d4a1 100644 --- a/packages/react-hooks/src/useEventTrigger.ts +++ b/packages/react-hooks/src/useEventTrigger.ts @@ -7,13 +7,11 @@ import type { EventRecord } from '@polkadot/types/interfaces'; import { useEffect, useState } from 'react'; -import { isString } from '@polkadot/util'; - import { useApi } from './useApi'; import { useCall } from './useCall'; import { useIsMountedRef } from './useIsMountedRef'; -type EventCheck = AugmentedEvent<'promise'> | string | false | undefined | null; +type EventCheck = AugmentedEvent<'promise'> | false | undefined | null; const IDENTITY_FILTER = () => true; @@ -25,12 +23,10 @@ export function useEventTrigger (checks: EventCheck[], filter: (record: EventRec useEffect((): void => { mountedRef.current && eventRecords && eventRecords.filter((r) => - r.event && checks.some((check) => check && ( - isString(check) - ? r.event.section === check - : check.is(r.event) - )) && filter(r) - ).length && setTrigger(() => eventRecords.createdAtHash?.toHex() || ''); + r.event && + checks.some((c) => c && c.is(r.event)) && + filter(r) + ).length && setTrigger(eventRecords.createdAtHash?.toHex() || ''); }, [eventRecords, checks, filter, mountedRef]); return trigger; diff --git a/packages/react-hooks/src/useExtrinsicTrigger.ts b/packages/react-hooks/src/useExtrinsicTrigger.ts index fa09129800..4567a22a7a 100644 --- a/packages/react-hooks/src/useExtrinsicTrigger.ts +++ b/packages/react-hooks/src/useExtrinsicTrigger.ts @@ -6,28 +6,23 @@ import type { SignedBlockExtended } from '@polkadot/api-derive/types'; import { useEffect, useState } from 'react'; -import { isString } from '@polkadot/util'; - import { useApi } from './useApi'; import { useCall } from './useCall'; import { useIsMountedRef } from './useIsMountedRef'; -type ExtrinsicCheck = SubmittableExtrinsicFunction<'promise'> | string | false | undefined | null; +type ExtrinsicCheck = SubmittableExtrinsicFunction<'promise'> | false | undefined | null; export function useExtrinsicTrigger (checks: ExtrinsicCheck[]): string { const { api } = useApi(); - const [trigger, setTrigger] = useState('0x00'); + const [trigger, setTrigger] = useState('0'); const mountedRef = useIsMountedRef(); const block = useCall(api.derive.chain.subscribeNewBlocks); useEffect((): void => { mountedRef.current && block && block.extrinsics && block.extrinsics.filter(({ extrinsic }) => - extrinsic && checks.some((check) => check && ( - isString(check) - ? extrinsic.method.section === check - : check.is(extrinsic) - )) - ).length && setTrigger(() => block.createdAtHash?.toHex() || '0x00'); + extrinsic && + checks.some((c) => c && c.is(extrinsic)) + ).length && setTrigger(() => block.createdAtHash?.toHex() || ''); }, [block, checks, mountedRef]); return trigger;