ghost-portal/packages/react-hooks/src/useJudgements.tsx
2024-01-08 15:06:30 +02:00

27 lines
1.0 KiB
TypeScript

// Copyright 2017-2024 @polkadot/react-hooks authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type { UseJudgements } from './types.js';
import { useMemo } from 'react';
import { getJudgements } from './utils/getJudgements.js';
import { matchRegistrarAccountsWithIndexes } from './utils/matchRegistrarAccountsWithIndexes.js';
import { createNamedHook } from './createNamedHook.js';
import { useAccountInfo } from './useAccountInfo.js';
import { useRegistrars } from './useRegistrars.js';
function useJudgementsImpl (address: string): UseJudgements {
const { identity } = useAccountInfo(address);
const { registrars: allRegistrars } = useRegistrars();
const judgementsWithRegistrarIndexes = useMemo(() => getJudgements(identity), [identity]);
return useMemo(
() => matchRegistrarAccountsWithIndexes(judgementsWithRegistrarIndexes, allRegistrars),
[allRegistrars, judgementsWithRegistrarIndexes]
);
}
export const useJudgements = createNamedHook('useJudgements', useJudgementsImpl);