diff --git a/src/langs/fa.json b/src/langs/fa.json index d152549..c302404 100644 --- a/src/langs/fa.json +++ b/src/langs/fa.json @@ -66,6 +66,11 @@ "admins": "مدیران", "shipment_methods": "روش های ارسال" }, + "shipment": { + "dineIn": "سرو در محل", + "pickup": "دریافت از محل", + "deliveryCourier": "بیرون بر" + }, "slider": { "new_slider": "اسلایدر جدید", "submit": "ثبت اسلایدر", diff --git a/src/pages/shipmentMethod/Create.tsx b/src/pages/shipmentMethod/Create.tsx index db68ba2..be9c4ae 100644 --- a/src/pages/shipmentMethod/Create.tsx +++ b/src/pages/shipmentMethod/Create.tsx @@ -8,34 +8,45 @@ import Button from '@/components/Button' import Input from '@/components/Input' import Select from '@/components/Select' import Switch from '@/components/Switch' -import type { CreateShipmentMethodType, ShipmentMethod } from './types/Types' -import { useCreateRestaurantShipmentMethod, useGetShipmentMethods } from './hooks/useShipmentMethodData' +import Textarea from '@/components/Textarea' +import type { CreateShipmentMethodType } from './types/Types' +import { useCreateRestaurantShipmentMethod } from './hooks/useShipmentMethodData' +import { DeliveryMethodEnum } from './enum/Enum' import { Pages } from '@/config/Pages' import type { ErrorType } from '@/helpers/types' import { extractErrorMessage } from '@/config/func' +import { useTranslation } from 'react-i18next' const CreateShipmentMethod: FC = () => { + + const { t } = useTranslation('global') const navigate = useNavigate() const { mutate: createRestaurantShipmentMethod, isPending } = useCreateRestaurantShipmentMethod() - const { data: shipmentMethodsData } = useGetShipmentMethods() - const shipmentMethods = shipmentMethodsData?.data?.map((method: ShipmentMethod) => ({ - label: method.title, - value: method.id - })) || [] + const shipmentMethods = [ + { label: t(`shipment.${DeliveryMethodEnum.DineIn}`), value: DeliveryMethodEnum.DineIn }, + { label: t(`shipment.${DeliveryMethodEnum.Pickup}`), value: DeliveryMethodEnum.Pickup }, + { label: t(`shipment.${DeliveryMethodEnum.DeliveryCourier}`), value: DeliveryMethodEnum.DeliveryCourier }, + ] const formik = useFormik({ initialValues: { - shipmentMethodId: '', - price: null, - minOrderPrice: null, - isActive: true, + method: '', + title: '', + deliveryFee: 0, + minOrderPrice: 0, + description: '', + enabled: true, + order: 0, }, validationSchema: Yup.object().shape({ - shipmentMethodId: Yup.string().required('روش ارسال الزامی است'), - price: Yup.number().nullable().required('قیمت الزامی است').min(0, 'قیمت باید مثبت باشد'), - minOrderPrice: Yup.number().nullable().required('حداقل قیمت سفارش الزامی است').min(0, 'حداقل قیمت سفارش باید مثبت باشد'), - isActive: Yup.boolean(), + method: Yup.string().required('روش ارسال الزامی است'), + title: Yup.string().required('عنوان الزامی است'), + deliveryFee: Yup.number().required('هزینه ارسال الزامی است').min(0, 'هزینه ارسال باید مثبت باشد'), + minOrderPrice: Yup.number().required('حداقل قیمت سفارش الزامی است').min(0, 'حداقل قیمت سفارش باید مثبت باشد'), + description: Yup.string().required('توضیحات الزامی است'), + enabled: Yup.boolean(), + order: Yup.number().required('ترتیب الزامی است').min(0, 'ترتیب باید مثبت باشد'), }), onSubmit: (values) => { createRestaurantShipmentMethod(values, { @@ -75,25 +86,34 @@ const CreateShipmentMethod: FC = () => {
+
+
+ { - const value = e.target.value === '' ? null : Number(e.target.value) - formik.setFieldValue('price', value) + const value = e.target.value === '' ? 0 : Number(e.target.value) + formik.setFieldValue('deliveryFee', value) }} - error_text={formik.touched.price && formik.errors.price ? formik.errors.price : ''} + error_text={formik.touched.deliveryFee && formik.errors.deliveryFee ? formik.errors.deliveryFee : ''} />
@@ -103,16 +123,38 @@ const CreateShipmentMethod: FC = () => { type='number' value={formik.values.minOrderPrice ?? ''} onChange={(e) => { - const value = e.target.value === '' ? null : Number(e.target.value) + const value = e.target.value === '' ? 0 : Number(e.target.value) formik.setFieldValue('minOrderPrice', value) }} error_text={formik.touched.minOrderPrice && formik.errors.minOrderPrice ? formik.errors.minOrderPrice : ''} />
+
+