82 lines
1.8 KiB
TypeScript
82 lines
1.8 KiB
TypeScript
|
|
import * as Yup from "yup";
|
|
import { buildFormData } from "../../api/helper/buildFormData";
|
|
|
|
interface formUtilCommon {
|
|
number: number,
|
|
value: number
|
|
}
|
|
|
|
interface ObjectToEdit extends formUtilCommon {
|
|
|
|
id?: number,
|
|
|
|
}
|
|
|
|
interface InitialValues extends ObjectToEdit {
|
|
|
|
}
|
|
interface ValidateSchema extends formUtilCommon {
|
|
|
|
}
|
|
export const getInitialValues = (objectToEdit: any | null = null): any => {
|
|
return {
|
|
id: objectToEdit?.id ?? 0,
|
|
name: objectToEdit?.name ?? "",
|
|
name_ar: objectToEdit?.name?.ar ?? '',
|
|
name_en: objectToEdit?.name?.en ?? '',
|
|
name_de: objectToEdit?.name?.de ?? '',
|
|
parent_id: objectToEdit?.parent_id ?? "",
|
|
photo: objectToEdit?.photo ?? '',
|
|
attribute: objectToEdit?.attribute ?? "",
|
|
new_attribute: objectToEdit?.attribute ?? ""
|
|
|
|
};
|
|
};
|
|
export const getInitialValuesForAdd = (objectToEdit: any | null = null): any => {
|
|
return {
|
|
name_ar: '',
|
|
name_en: '',
|
|
name_de: '',
|
|
parent_id: "",
|
|
photo: '',
|
|
attribute: "",
|
|
new_attribute: ""
|
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
export const getValidationSchema = (editMode: boolean = false): Yup.Schema<any> => {
|
|
// Validate input
|
|
return Yup.object().shape({
|
|
name_ar: Yup.string().required('Required'),
|
|
name_en: Yup.string().required('Required'),
|
|
name_de: Yup.string().required('Required'),
|
|
parent_id: Yup.string().required('Required'),
|
|
photo: Yup.string().required('Required'),
|
|
|
|
});
|
|
};
|
|
|
|
|
|
|
|
export const getDataToSend = (values: any): FormData => {
|
|
const data = { ...values };
|
|
|
|
|
|
const formData = new FormData();
|
|
buildFormData(formData, data);
|
|
return formData;
|
|
};
|
|
|
|
export const ChangeDataToPrint = (data: any) => {
|
|
|
|
let new_array = data
|
|
for (let i = 0; i < data.length; i++) {
|
|
new_array[i]['status'] = !data[i]['deleted_at'] ? 'available' : 'unavailable'
|
|
delete new_array[i]['deleted_at']
|
|
}
|
|
return new_array
|
|
} |