All files / libs/payout-definition/plans/views/hub/rule-designer/src/lib/hooks use-open-token-in-new-tab-link.ts

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

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 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36                                                                       
import { generatePath } from 'react-router-dom';

import { type TokenType } from '@amalia/amalia-lang/tokens/types';
import { qsStringify } from '@amalia/core/http/client';
import { routes } from '@amalia/core/routes';

import { usePlanHubRuleDesignerContext } from '../PlanHubRuleDesigner.context';

export const makeUrlToToken = (
  planId: string,
  ruleId: string,
  tokenType?: TokenType,
  tokenId?: string,
  moreQsParams?: Record<string, string | undefined>,
) => {
  const query =
    tokenType && tokenId
      ? qsStringify({
          tokenToOpen: `${tokenType}:${tokenId}`,
          step: '2-design-commission-structure',
          ...moreQsParams,
        })
      : '';

  return `${generatePath(routes.PLAN_HUB_RULE, {
    planId,
    ruleId,
  })}?${query}`;
};

export const useOpenTokenInNewTabLink = (tokenType?: TokenType, tokenId?: string): string => {
  const { planId, ruleId } = usePlanHubRuleDesignerContext();

  return makeUrlToToken(planId, ruleId, tokenType, tokenId);
};