Files
no-copy-frontend/src/app/ui/inputs/bank-card-inpit.tsx
T

52 lines
1.3 KiB
TypeScript
Raw Normal View History

2026-02-24 17:22:01 +07:00
'use client'
import { useState, ChangeEvent, useEffect } from 'react';
2026-02-25 18:17:08 +07:00
import { InputMask, format } from '@react-input/mask';
2026-02-24 17:22:01 +07:00
import styles from '@/app/styles/module/login.module.scss';
2026-02-25 18:17:08 +07:00
import { PayoutMethods } from '@/app/actions/referralsActions';
2026-02-24 17:22:01 +07:00
interface BankCardProps {
bankCardState: string | undefined;
validateHandler: (e: ChangeEvent<HTMLInputElement>) => void;
2026-02-25 18:17:08 +07:00
clearCondition?: string | undefined | null;
disabled: boolean;
2026-02-24 17:22:01 +07:00
}
2026-02-25 18:17:08 +07:00
export default function BankCardInput({ bankCardState, validateHandler, disabled }: BankCardProps) {
const [bankCard, setBankCard] = useState<string | undefined>('');
useEffect(() => {
if (bankCardState) {
if (disabled) {
setBankCard(format(bankCardState, {
mask: "**** **** **** ____",
replacement: { _: /\d/ }
}));
} else {
setBankCard(format(bankCardState, {
mask: "____ ____ ____ ____",
replacement: { _: /\d/ }
}));
}
}
}, [bankCardState, disabled]);
2026-02-24 17:22:01 +07:00
return (
<InputMask
type="phone"
id="bankCard"
name="bankCard"
className={`${styles['form-input']}`}
mask="____ ____ ____ ____"
replacement={{ _: /\d/ }}
value={bankCard}
2026-02-25 18:17:08 +07:00
disabled={disabled}
2026-02-24 17:22:01 +07:00
onChange={(e) => {
setBankCard(e.target.value);
validateHandler(e);
}}
placeholder="1234 1234 1234 1234"
/>
)
}