Update DeedTypeEdit

This commit is contained in:
Sosthene 2025-09-11 14:13:40 +02:00
parent b4d8562519
commit 129e3ea973

View File

@ -16,6 +16,7 @@ import classes from "./classes.module.scss";
import DeedTypeService from "src/common/Api/LeCoffreApi/sdk/DeedTypeService"; import DeedTypeService from "src/common/Api/LeCoffreApi/sdk/DeedTypeService";
import LoaderService from "src/common/Api/LeCoffreApi/sdk/Loader/LoaderService"; import LoaderService from "src/common/Api/LeCoffreApi/sdk/Loader/LoaderService";
import MessageBus from "src/sdk/MessageBus";
export default function DeedTypesEdit() { export default function DeedTypesEdit() {
const router = useRouter(); const router = useRouter();
@ -31,10 +32,11 @@ export default function DeedTypesEdit() {
async function getDeedType() { async function getDeedType() {
if (!deedTypeUid) return; if (!deedTypeUid) return;
LoaderService.getInstance().show(); LoaderService.getInstance().show();
DeedTypeService.getDeedTypeByUid(deedTypeUid as string).then((process: any) => { // deedTypeUid comes from URL without ':0' suffix, add it back for API calls
if (process) { const processId = (deedTypeUid as string) + ':0';
const deedType: any = process.processData; MessageBus.getInstance().getProcessData(processId).then((processData: any) => {
setDeedTypeSelected(deedType); if (processData) {
setDeedTypeSelected(processData);
} }
LoaderService.getInstance().hide(); LoaderService.getInstance().hide();
}); });
@ -47,24 +49,28 @@ export default function DeedTypesEdit() {
setIsConfirmModalVisible(false); setIsConfirmModalVisible(false);
}, []); }, []);
const onSubmitHandler = useCallback( const onSubmitHandler = async (e: React.FormEvent<HTMLFormElement> | null, values: { [key: string]: string | undefined }) => {
async (e: React.FormEvent<HTMLFormElement> | null, values: { [key: string]: string | undefined }) => { // const deedType = DeedType.hydrate<DeedType>({
const deedType = DeedType.hydrate<DeedType>({ // name: values["name"],
uid: deedTypeUid as string, // description: values["description"],
name: values["name"], // });
description: values["description"],
}); // try {
try { // await deedType.validateOrReject?.({ groups: ["updateDeedType"], forbidUnknownValues: true });
await deedType.validateOrReject?.({ groups: ["updateDeedType"], forbidUnknownValues: true }); // } catch (validationErrors: Array<ValidationError> | any) {
} catch (validationErrors: Array<ValidationError> | any) { // if (!Array.isArray(validationErrors)) return;
if (!Array.isArray(validationErrors)) return; // setValidationError(validationErrors as ValidationError[]);
setValidationError(validationErrors as ValidationError[]); // return;
return; // }
}
try { try {
LoaderService.getInstance().show(); LoaderService.getInstance().show();
DeedTypeService.getDeedTypeByUid(deedTypeUid as string).then(async (process: any) => { // deedTypeUid comes from URL without ':0' suffix, add it back for API calls
const processId = (deedTypeUid as string) + ':0';
const process = await MessageBus.getInstance().getProcessData(processId);
if (process) { if (process) {
console.log('process', process);
// New data // New data
const newData: any = { const newData: any = {
name: values["name"], name: values["name"],
@ -72,26 +78,23 @@ export default function DeedTypesEdit() {
}; };
// Merge process data with new data & update process // Merge process data with new data & update process
process.processData.name = newData.name; process[processId].name = newData.name;
process.processData.description = newData.description; process[processId].description = newData.description;
await DeedTypeService.updateDeedType(process, newData); await DeedTypeService.updateDeedType(processId, newData);
router.push( router.push(
Module.getInstance() Module.getInstance()
.get() .get()
.modules.pages.DeedTypes.pages.DeedTypesInformations.props.path.replace("[uid]", deedTypeUid as string), .modules.pages.DeedTypes.pages.DeedTypesInformations.props.path.replace("[uid]", deedTypeUid as string),
); );
}
} catch (error) {
console.error('Error updating deed type:', error);
// Handle error appropriately
} finally {
LoaderService.getInstance().hide(); LoaderService.getInstance().hide();
} }
}); };
} catch (validationErrors) {
if (!Array.isArray(validationErrors)) return;
setValidationError(validationErrors as ValidationError[]);
return;
}
},
[deedTypeUid, router],
);
const onFieldChange = useCallback((name: string, field: any) => { const onFieldChange = useCallback((name: string, field: any) => {
setHasChanged(true); setHasChanged(true);