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 | 41x 94x 94x 41x 94x 94x 41x 95x 29x 29x 41x 94x 94x 3x 91x 41x 29x | import type { TMerchantAgreementPayload } from "@components/Merchants/CreateMerchantPanel/hooks/TMerchantAgreementPayload";
import { IParsedData } from "@components/Merchants/MerchantPreview/data.types";
import GiveText from "@shared/Text/GiveText";
import moment from "moment";
import { PLATFORM_TIMEZONE } from "@utils/timezones";
type ParseMerchantAgreementOptions = {
rawAgreement?: Partial<TMerchantAgreementPayload>;
apiData?: any;
signedByFallback?: string;
tcVersion?: string;
msaVersion?: string;
};
export const getLocalSignatureFile = (
merchantAgreement: any,
): File | undefined => {
const localSignature =
merchantAgreement?.signatureFile?.file ?? merchantAgreement?.signatureFile;
return localSignature instanceof File ? localSignature : undefined;
};
export const parseMerchantAgreementPayload = ({
rawAgreement,
apiData,
signedByFallback,
tcVersion,
msaVersion,
}: ParseMerchantAgreementOptions): TMerchantAgreementPayload => {
const rawAgreementData = rawAgreement ?? {};
return {
...(rawAgreementData as any),
msaRefundPolicy: rawAgreementData.msaRefundPolicy ?? "30 Days of Purchase",
msaPCICompliant: rawAgreementData.msaPCICompliant ?? true,
msaPreviousTermination: rawAgreementData.msaPreviousTermination ?? false,
msaPreviousTerminationProcessorName:
rawAgreementData.msaPreviousTerminationProcessorName ?? "",
msaPreviousTerminationReason:
rawAgreementData.msaPreviousTerminationReason ?? "",
msaPreviousTerminationAt: rawAgreementData.msaPreviousTerminationAt ?? null,
msaHadAgreed: Boolean(rawAgreementData.msaHadAgreed),
signedBy: rawAgreementData.signedBy || signedByFallback,
msaLastUpdatedAt: rawAgreementData.msaLastUpdatedAt,
msaLastAcceptedVersion:
rawAgreementData.msaLastAcceptedVersion ||
apiData?.msaLastAcceptedVersion,
tcVersion: tcVersion ?? rawAgreementData.tcVersion,
msaVersion: msaVersion ?? rawAgreementData.msaVersion,
tcVersionUpdatedAt: apiData?.acquirerTcDate,
};
};
export const formatAgreementDate = (timestamp?: number) => {
if (!timestamp) return { signedDate: "", signedDateTime: "" };
const m = moment.unix(timestamp).tz(PLATFORM_TIMEZONE);
return {
signedDate: m.format("MM/DD/YYYY"),
signedDateTime: m.format("MM/DD/YYYY HH:mm:ss"),
};
};
export const getDisplayTimestamp = (
data?: TMerchantAgreementPayload,
merchantData?: Partial<IParsedData>,
signatureFile?: File,
): number | undefined => {
const hasLocalSignature = signatureFile && "name" in signatureFile;
if (hasLocalSignature && !data?.msaLastUpdatedAt) {
return Math.floor(Date.now() / 1000);
}
return (
data?.msaLastUpdatedAt || merchantData?.merchantAgreement?.msaLastUpdatedAt
);
};
export const renderSpan = (text: string, inBold = false) => (
<GiveText
variant="bodyS"
component="span"
color="primary"
fontWeight={inBold ? "500" : "400"}
>
{text}
</GiveText>
);
|