This commit is contained in:
@@ -28,9 +28,13 @@ const validationSchema = yup.object({
|
|||||||
longitude: yup.number().required("انتخاب موقعیت روی نقشه الزامی است"),
|
longitude: yup.number().required("انتخاب موقعیت روی نقشه الزامی است"),
|
||||||
description: yup.string().nullable(),
|
description: yup.string().nullable(),
|
||||||
establishedYear: yup
|
establishedYear: yup
|
||||||
.string()
|
.number()
|
||||||
.nullable()
|
.nullable()
|
||||||
.matches(/^$|^\d{4}$/, "سال تاسیس باید ۴ رقم باشد"),
|
.transform((value, originalValue) => (originalValue === "" ? null : value))
|
||||||
|
.test("four-digits", "سال تاسیس باید ۴ رقم باشد", (value) => {
|
||||||
|
if (value == null) return true;
|
||||||
|
return String(value).length === 4;
|
||||||
|
}),
|
||||||
});
|
});
|
||||||
|
|
||||||
const GeneralSettings: FC = () => {
|
const GeneralSettings: FC = () => {
|
||||||
@@ -52,11 +56,14 @@ const GeneralSettings: FC = () => {
|
|||||||
description: "",
|
description: "",
|
||||||
logo: "",
|
logo: "",
|
||||||
serviceArea: undefined,
|
serviceArea: undefined,
|
||||||
establishedYear: "",
|
establishedYear: undefined,
|
||||||
},
|
},
|
||||||
validationSchema,
|
validationSchema,
|
||||||
onSubmit: (values) => {
|
onSubmit: (values) => {
|
||||||
const submitSettings = (logoUrl?: string) => {
|
const submitSettings = (logoUrl?: string) => {
|
||||||
|
if (values.establishedYear) {
|
||||||
|
values.establishedYear = Number(values.establishedYear);
|
||||||
|
}
|
||||||
const settingsData: UpdateRestaurantType = {
|
const settingsData: UpdateRestaurantType = {
|
||||||
...values,
|
...values,
|
||||||
logo: logoUrl || values.logo || "",
|
logo: logoUrl || values.logo || "",
|
||||||
@@ -69,7 +76,7 @@ const GeneralSettings: FC = () => {
|
|||||||
setLogoFile([]);
|
setLogoFile([]);
|
||||||
},
|
},
|
||||||
onError: (error: unknown) => {
|
onError: (error: unknown) => {
|
||||||
toast.error("خطا در ذخیره تنظیمات");
|
toast.error(extractErrorMessage(error));
|
||||||
console.error(error);
|
console.error(error);
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -106,7 +113,7 @@ const GeneralSettings: FC = () => {
|
|||||||
description: restaurantData.description || "",
|
description: restaurantData.description || "",
|
||||||
logo: restaurantData.logo || "",
|
logo: restaurantData.logo || "",
|
||||||
serviceArea: restaurantData.serviceArea || undefined,
|
serviceArea: restaurantData.serviceArea || undefined,
|
||||||
establishedYear: restaurantData.establishedYear?.toString() || "",
|
establishedYear: restaurantData.establishedYear ?? undefined,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
@@ -178,8 +185,11 @@ const GeneralSettings: FC = () => {
|
|||||||
label="سال تاسیس"
|
label="سال تاسیس"
|
||||||
name="establishedYear"
|
name="establishedYear"
|
||||||
type="number"
|
type="number"
|
||||||
value={formik.values.establishedYear}
|
value={formik.values.establishedYear ?? ""}
|
||||||
onChange={formik.handleChange}
|
onChange={(e) => {
|
||||||
|
const val = e.target.value;
|
||||||
|
formik.setFieldValue("establishedYear", val === "" ? undefined : Number(val));
|
||||||
|
}}
|
||||||
onBlur={formik.handleBlur}
|
onBlur={formik.handleBlur}
|
||||||
error_text={formik.touched.establishedYear && formik.errors.establishedYear ? formik.errors.establishedYear : undefined}
|
error_text={formik.touched.establishedYear && formik.errors.establishedYear ? formik.errors.establishedYear : undefined}
|
||||||
placeholder="مثال: 1400"
|
placeholder="مثال: 1400"
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ export type UpdateRestaurantType = {
|
|||||||
latitude?: number;
|
latitude?: number;
|
||||||
longitude?: number;
|
longitude?: number;
|
||||||
description?: string;
|
description?: string;
|
||||||
establishedYear?: string;
|
establishedYear?: number;
|
||||||
serviceArea?: GeoJSONPolygon;
|
serviceArea?: GeoJSONPolygon;
|
||||||
score?: {
|
score?: {
|
||||||
purchaseAmount: string;
|
purchaseAmount: string;
|
||||||
|
|||||||
Reference in New Issue
Block a user