All files / libs/payout-definition/plans/components/src/lib/used-in-plans useUsedInPlans.ts

0% Statements 0/16
0% Branches 0/1
0% Functions 0/1
0% Lines 0/16

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17                                 
import { useMemo } from 'react';

import { type Plan } from '@amalia/payout-definition/plans/types';

export const useUsedInPlans = (tokenId: string | null, plansList: Plan[], excludeCurrentPlanId?: string) =>
  useMemo(
    () =>
      tokenId
        ? plansList
            .filter((p) => (p.indexedPlanTemplate?.dependencyIds ?? []).includes(tokenId))
            .map((p) => ({ name: p.name, id: p.id, isHidden: p.isHidden, archived: p.archived }))
            .toSorted((a, b) => a.name.localeCompare(b.name))
            .filter((p) => (excludeCurrentPlanId ? p.id !== excludeCurrentPlanId : true))
        : [],
    [tokenId, plansList, excludeCurrentPlanId],
  );