fix bank-card validation bug

This commit is contained in:
smanylov
2026-03-24 21:55:43 +07:00
parent f4b4f4bafb
commit 4986455919
4 changed files with 25 additions and 14 deletions
@@ -10,7 +10,7 @@ import { bankCardFormSchema } from '@/app/actions/definitions';
import { useTranslations } from 'next-intl';
interface cardInfoType {
cardType: string,
cardType: string | null,
potentiallyValid: boolean,
cardValid?: boolean
}
@@ -110,15 +110,23 @@ export default function BankCard() {
}
if (e.target.value.length === 19 && !numberValidation.isValid) {
setCardInfo((prev) => {
if (prev) {
return {
...prev,
cardValid: false
if (cardInfo) {
setCardInfo((prev) => {
if (prev) {
return {
...prev,
cardValid: false
}
}
}
return null;
})
return null;
});
} else {
setCardInfo({
cardType: null,
potentiallyValid: false,
cardValid: false
})
}
}
if (validatedField.success) {
@@ -162,7 +170,7 @@ export default function BankCard() {
disabled={!isEditing}
isValid={cardInfo?.cardValid}
/>
{/* */}
{cardInfo && (
<div
className="card-type"
@@ -173,6 +181,7 @@ export default function BankCard() {
</div>
{cardInfo?.cardValid === false && (
<p className="text-sm text-red-500">
{/* */}
<span>
{t('bank-card-not-valid')}
</span>
@@ -248,7 +257,7 @@ export default function BankCard() {
setIsEditing(true)
}}
>
Изменить
{t('change')}
</button>
)
}