add validation message for back card input

This commit is contained in:
smanylov
2026-03-14 10:49:07 +07:00
parent 00c4f4062d
commit f7879485ef
4 changed files with 30 additions and 5 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "no-copy-frontend", "name": "no-copy-frontend",
"version": "0.60.0", "version": "0.61.0",
"private": true, "private": true,
"scripts": { "scripts": {
"dev": "next dev -p 2999", "dev": "next dev -p 2999",
@@ -12,7 +12,8 @@ import valid from 'card-validator';
interface cardInfoType { interface cardInfoType {
cardType: string, cardType: string,
potentiallyValid: boolean potentiallyValid: boolean,
cardValid?: boolean
} }
export default function SettingReferralProgram() { export default function SettingReferralProgram() {
@@ -51,6 +52,7 @@ export default function SettingReferralProgram() {
setFormState(state); setFormState(state);
if (state?.success) { if (state?.success) {
toast.success('success'); toast.success('success');
setIsEditing(false);
queryClient.invalidateQueries({ queryKey: ['payoutMethods'] }); queryClient.invalidateQueries({ queryKey: ['payoutMethods'] });
} }
@@ -103,10 +105,23 @@ export default function SettingReferralProgram() {
if (numberValidation.card) { if (numberValidation.card) {
setCardInfo({ setCardInfo({
cardType: numberValidation.card.type, cardType: numberValidation.card.type,
potentiallyValid: numberValidation.isPotentiallyValid potentiallyValid: numberValidation.isPotentiallyValid,
cardValid: true
}); });
} }
if (e.target.value.length === 19 && !numberValidation.isValid) {
setCardInfo((prev) => {
if (prev) {
return {
...prev,
cardValid: false
}
}
return null;
})
}
if (validatedField.success) { if (validatedField.success) {
setFormState(prevState => { setFormState(prevState => {
if (!prevState?.error || !prevState?.error[fieldName]) { if (!prevState?.error || !prevState?.error[fieldName]) {
@@ -195,8 +210,9 @@ export default function SettingReferralProgram() {
bankCardState={defaultCardNumber?.cardNumber} bankCardState={defaultCardNumber?.cardNumber}
validateHandler={onChangeHandler} validateHandler={onChangeHandler}
disabled={!isEditing} disabled={!isEditing}
isValid={cardInfo?.potentiallyValid} isValid={cardInfo?.cardValid}
/> />
{/* */}
{cardInfo && ( {cardInfo && (
<div <div
className="card-type" className="card-type"
@@ -205,6 +221,13 @@ export default function SettingReferralProgram() {
</div> </div>
)} )}
</div> </div>
{cardInfo?.cardValid === false && (
<p className="text-sm text-red-500">
<span>
{t('bank-card-not-valid')}
</span>
</p>
)}
{formState?.error?.bankCard && ( {formState?.error?.bankCard && (
<p className="text-sm text-red-500"> <p className="text-sm text-red-500">
{ {
@@ -247,7 +270,7 @@ export default function SettingReferralProgram() {
<button <button
type="submit" type="submit"
className="btn-primary" className="btn-primary"
disabled={isPending || !cardInfo?.potentiallyValid} disabled={isPending || !cardInfo?.cardValid}
> >
{t("save-changes")} {t("save-changes")}
{isPending && ( {isPending && (
+1
View File
@@ -263,6 +263,7 @@
"global-error-title": "Global search error:", "global-error-title": "Global search error:",
"on-account-balance": "On the account balance", "on-account-balance": "On the account balance",
"bank-card": "Bank card", "bank-card": "Bank card",
"bank-card-not-valid": "The bank card is not valid",
"bank-transfer": "Bank transfer", "bank-transfer": "Bank transfer",
"preferred-payment-method": "Preferred payment method", "preferred-payment-method": "Preferred payment method",
"referral-program-settings": "Referral program settings", "referral-program-settings": "Referral program settings",
+1
View File
@@ -263,6 +263,7 @@
"global-error-title": "Ошибка глобального поиска:", "global-error-title": "Ошибка глобального поиска:",
"on-account-balance": "На баланс аккаунта", "on-account-balance": "На баланс аккаунта",
"bank-card": "Банковская карта", "bank-card": "Банковская карта",
"bank-card-not-valid": "Банковская карта не действительна",
"bank-transfer": "Банковский перевод", "bank-transfer": "Банковский перевод",
"preferred-payment-method": "Предпочитаемый способ выплаты", "preferred-payment-method": "Предпочитаемый способ выплаты",
"referral-program-settings": "Настройки реферальной программы", "referral-program-settings": "Настройки реферальной программы",