- added criteria setting for form fields;

- added dynamic data setitng for form fields;
This commit is contained in:
Vitalii Kiiko
2024-10-15 15:20:27 +02:00
parent a5b817e999
commit 782ec5fda7
4 changed files with 77 additions and 49 deletions

View File

@@ -4,7 +4,7 @@ import { useNavigate, useParams } from 'react-router-dom';
import { DndProvider } from 'react-dnd';
import { HTML5Backend } from 'react-dnd-html5-backend';
import { klona } from 'klona';
import { isEmpty } from 'ramda';
import { isEmpty, pathOr } from 'ramda';
// store
import { storeSet, storeGet, useStore } from '../../store';
@@ -21,6 +21,7 @@ import { Messages } from 'primereact/messages';
// api
import FormsService from '../../service/forms-service';
import set404FromErrorResponse from '../../helpers/set404FromErrorResponse';
import BandoService from '../../service/bando-service';
// TODO temp data
//import { elementItems } from '../../tempData';
@@ -243,7 +244,20 @@ const BandoFormsEdit = () => {
storeSet.main.unsetAsyncRequest();
}
const getBandoCallback = (data) => {
if (data.status === 'SUCCESS') {
const criteria = pathOr([], ['data', 'criteria'], data);
const criteriaOptions = criteria.map(o => ({value: o.lookUpDataId, label: o.value}));
storeSet.main.bandoCriteria(criteriaOptions);
}
}
const errGetBandoCallback = (data) => {
set404FromErrorResponse(data);
}
useEffect(() => {
const bandoId = getBandoId();
const parsedFormId = parseInt(formId)
const bandoFormId = !isNaN(parsedFormId) ? parsedFormId : 0;
@@ -253,12 +267,14 @@ const BandoFormsEdit = () => {
if (bandoFormId) {
storeSet.main.setAsyncRequest();
FormsService.getFormById(bandoFormId, getFormCallback, errGetFormCallbacks);
BandoService.getBando(bandoId, getBandoCallback, errGetBandoCallback);
}
return () => {
storeSet.main.formId(0);
storeSet.main.formLabel('');
storeSet.main.formElements([]);
storeSet.main.bandoCriteria([]);
}
}, [id, formId]);