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