/* eslint-disable react/no-danger */ /* eslint-disable react/jsx-no-bind */ import Image from "next/image"; import type { RefObject } from "react"; import { useState } from "react"; import type { UseFormReturn } from "react-hook-form"; import FormMaskInput from "@/components/form/components/basic/form-mask-input"; import FormTextInput from "@/components/form/components/basic/form-text-input"; import FormCreditCardInput from "@/components/form/components/related/form-credit-card-input"; import FormPhoneInput from "@/components/form/components/related/form-phone-input"; import type { FormHandles } from "@/components/form/form"; import Form from "@/components/form/form"; import FormItem from "@/components/form/form-item"; import { Button } from "@/components/ui/button/button"; import { Tooltip } from "@/components/ui/tooltip/tooltip"; import { useLocale } from "@/hooks/useLocale"; import { requiredRule } from "@/validations/form-rules/rules/required-rule"; import PolicyCheck from "../../policy-check/policy-check"; import { CreditCardInfos } from "../credit-card-infos/credit-card-infos"; interface FormType { rtaPan: string; cardHolderName: string; expiryDate: string; cvc: string; accountAliasName: string; msisdn: { phoneNumber: string; dialCode: string; }; } export interface MasterpassRegisterFormProps { onSubmit: (variables: FormType) => void; masterpassFormRef: RefObject; methods: UseFormReturn; } const MasterpassRegisterForm = (props: MasterpassRegisterFormProps) => { const [isCvcFocused, setIsCvcFocused] = useState(false); const { t } = useLocale(); async function handleSubmit(params: FormType) { props.onSubmit(params); } return (
{t("Card Information")}
setIsCvcFocused(true)} onBlur={() => setIsCvcFocused(false)} />
{ if (!value || value?.phoneNumber === "") return t("This field is required"); const phoneNumberRegex = /^[0-9]{10}$/; if (!phoneNumberRegex.test(value.phoneNumber)) { return t("Phone number is wrong"); } return true; }, }} name="msisdn" size="lg" label={`${t("Telephone")}*`} /> {({ field, fieldState, setValue }) => (
(

{t("Masterpass Terms of Use Content")}

)} renderLabelItem={({ toggleModal }) => ( )} /> {fieldState.error && (
)}
)}
0 ? props.methods?.watch("rtaPan") : "0000 0000 0000 0000" } cardExpireDate={ props.methods?.watch("expiryDate")?.length > 0 ? props.methods .watch("expiryDate") .replace(/(\d{2})(\d{2})/, "$1/$2") : t("MM/YY") } cardHolderName={ props.methods?.watch("cardHolderName") ?? t("Card Owner") } cardCvv={ props.methods?.watch("cvc")?.length > 0 ? props.methods?.watch("cvc") : "000" } showBack={isCvcFocused} />
chip
); }; export { MasterpassRegisterForm };