All files / src/features/Merchants/MerchantSidePanel/ApprovalFlowPanel utils.ts

100% Statements 13/13
68.18% Branches 15/22
100% Functions 4/4
100% Lines 12/12

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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99          116x 3898x 3898x           3898x     116x                     450x 450x 450x     450x                                                                                                       116x 653x             2612x            
import { TaskTypeNameEnum } from "../UnderwritingTasks/types";
import { UNDERWRITING_TASKS } from "./hooks/tasks";
import { MerchantRiskTabEnum, TUnderwritingTask } from "./types";
import moment from "moment";
 
export const getTaskName = (taskData: TUnderwritingTask) => {
  const isEDD = taskData.type === TaskTypeNameEnum.EDD;
  const taskName = isEDD
    ? taskData?.merchantTaskName
    : UNDERWRITING_TASKS[taskData.slug]?.displayTitle ||
      taskData?.globalTaskName ||
      taskData?.name;
 
  return taskName;
};
 
export const getTaskModalArgs = ({
  taskData,
  merchantData,
  isNewConversationsEnabled,
  isProvider,
}: {
  merchantData: any; //fix types
  taskData: any;
  isNewConversationsEnabled: boolean;
  isProvider: boolean;
}) => {
  const isEDD = taskData.type === "enhanced_due_diligence";
  const taskName = getTaskName(taskData);
  const { description, userMessage } = isProvider
    ? (UNDERWRITING_TASKS as any)[taskData.slug]?.enterprise || {}
    : (UNDERWRITING_TASKS as any)[taskData.slug]?.merchant || {};
  return {
    discussionData: {
      discussionTitle: taskName,
      messageImages: taskData.userAvatarsInThread,
      commentsCount: taskData.totalUsersCommentedInThread,
      lastComment: taskData.notifiedAt
        ? moment.unix(taskData.notifiedAt).fromNow()
        : "",
    },
    challengeData: {
      id: taskData.id,
      name: taskData.slug,
      description: taskData.description,
      challengeID: taskData.id,
      title: taskName,
      message: isEDD ? taskData.notificationMessage : description || "",
      threadId: taskData.threadID,
      internalThreadID: taskData.internalThreadID,
      challengeTypeName: taskData.type,
      isPAHChallenge:
        merchantData.primaryAccountHolder.email &&
        merchantData.primaryAccountHolder.id &&
        taskData.slug === "primary_account_holder_identity",
      statusName: taskData.status,
      isBOVerification: taskData.slug === "business_owner",
      hasUnreadMessages: taskData.hasUnreadMessages,
      didMerchantReply: taskData.didMerchantReply,
      unreadMessagesCount: taskData.unreadMessagesCount,
      isMentioned: taskData.isMentioned,
      reason: taskData.reason,
      merchantDisplayTitle: taskName,
      predefinedReason: isEDD ? "" : userMessage,
      requestAttention: taskData.requestAttention,
      userAvatarsInThread: taskData.userAvatarsInThread,
    },
    merchantData: {
      documents: merchantData.documents,
      merchantId: merchantData?.merchantInfo?.merchantID,
      isEnterprise: isProvider,
      businessOwners: merchantData.businessOwnersList,
      businessProfile: merchantData.businessProfile,
      merchantInfo: merchantData.merchantInfo,
      header: merchantData.header,
      primaryAccountHolder: merchantData?.primaryAccountHolder,
      merchantAgreement: merchantData.merchantAgreement,
      statusName: merchantData.status.statusName,
      bankAccounts: merchantData.bankAccountList,
      bankAccountSettings: merchantData?.bankAccountSettings,
    },
  };
};
 
export const getInitMerchantRiskTabs = () => {
  const merchantRiskTabs = [
    MerchantRiskTabEnum.OVERVIEW,
    MerchantRiskTabEnum.ACTIVITY,
    MerchantRiskTabEnum.TRIGGERS,
    MerchantRiskTabEnum.TRANSACTIONS,
  ];
 
  return merchantRiskTabs.map((item) => ({
    label: item,
    value: item,
    selected: item === MerchantRiskTabEnum.OVERVIEW,
  }));
};