From 72ca39c284d23486701f6fbe96b7d20d7567ab57 Mon Sep 17 00:00:00 2001 From: hamid zarghami Date: Mon, 29 Jun 2026 11:41:03 +0330 Subject: [PATCH] multi card number in payment method --- .env | 4 +- src/pages/paymentMethods/Create.tsx | 45 +++----- src/pages/paymentMethods/Update.tsx | 48 +++----- .../components/PaymentMethodCardsSection.tsx | 109 ++++++++++++++++++ .../components/PaymentMethodTableColumns.tsx | 10 +- src/pages/paymentMethods/types/Types.ts | 11 +- 6 files changed, 153 insertions(+), 74 deletions(-) create mode 100644 src/pages/paymentMethods/components/PaymentMethodCardsSection.tsx diff --git a/.env b/.env index 7b5e9c6..d0609b0 100644 --- a/.env +++ b/.env @@ -1,7 +1,7 @@ VITE_TOKEN_NAME = 'dmnu_a_t' VITE_REFRESH_TOKEN_NAME = 'dmnu-a-rt' -VITE_BASE_URL = 'https://dmenu-api.danakcorp.com' -# VITE_BASE_URL = 'http://192.168.99.131:2000' +# VITE_BASE_URL = 'https://dmenu-api.danakcorp.com' +VITE_BASE_URL = 'http://192.168.99.131:2000' VITE_SOCKET_URL = 'https://dmenu-api.danakcorp.com' \ No newline at end of file diff --git a/src/pages/paymentMethods/Create.tsx b/src/pages/paymentMethods/Create.tsx index 7f0a030..0db0618 100644 --- a/src/pages/paymentMethods/Create.tsx +++ b/src/pages/paymentMethods/Create.tsx @@ -11,6 +11,7 @@ import Select from '@/components/Select' import Switch from '@/components/Switch' import Textarea from '@/components/Textarea' import type { CreateRestaurantPaymentMethodType } from './types/Types' +import PaymentMethodCardsSection from './components/PaymentMethodCardsSection' import { useCreateRestaurantPaymentMethod } from './hooks/usePaymentMethodData' import { PaymentMethodEnum, PaymentGatewayEnum } from './enum/Enum' import { Pages } from '@/config/Pages' @@ -41,8 +42,7 @@ const CreatePaymentMethod: FC = () => { enabled: true, order: 0, merchantId: '', - cardNumber: '', - cardOwner: '', + cards: [{ cardNumber: '', owner: '' }], }, validationSchema: Yup.object().shape({ method: Yup.string().required('روش پرداخت الزامی است'), @@ -59,14 +59,17 @@ const CreatePaymentMethod: FC = () => { then: (schema) => schema.required('شناسه مرچنت الزامی است'), otherwise: (schema) => schema.notRequired(), }), - cardNumber: Yup.string().when('method', { + cards: Yup.array().when('method', { is: PaymentMethodEnum.CreditCard, - then: (schema) => schema.required('شماره کارت الزامی است'), - otherwise: (schema) => schema.notRequired(), - }), - cardOwner: Yup.string().when('method', { - is: PaymentMethodEnum.CreditCard, - then: (schema) => schema.required('نام صاحب کارت الزامی است'), + then: (schema) => + schema + .min(1, 'حداقل یک کارت الزامی است') + .of( + Yup.object().shape({ + cardNumber: Yup.string().required('شماره کارت الزامی است'), + owner: Yup.string().required('نام صاحب کارت الزامی است'), + }) + ), otherwise: (schema) => schema.notRequired(), }), }), @@ -84,8 +87,7 @@ const CreatePaymentMethod: FC = () => { : {}), ...(values.method === PaymentMethodEnum.CreditCard ? { - cardNumber: values.cardNumber, - cardOwner: values.cardOwner, + cards: values.cards, } : {}), } @@ -160,26 +162,7 @@ const CreatePaymentMethod: FC = () => { )} {formik.values.method === PaymentMethodEnum.CreditCard && ( - <> -
- -
-
- -
- + )}