- saving progress;

This commit is contained in:
Vitalii Kiiko
2025-03-03 08:29:01 +01:00
parent 186291b52b
commit cb8b78dac3
4 changed files with 116 additions and 104 deletions

View File

@@ -1,7 +1,7 @@
import React, { useState, useEffect, useRef, useMemo } from 'react';
import React, { useState, useEffect, useRef, useMemo, useCallback } from 'react';
import { __, sprintf } from '@wordpress/i18n';
import { useParams } from 'react-router-dom';
import { head, is, pluck, isEmpty, pathOr, isNil } from 'ramda';
import { head, is, pluck, isEmpty, pathOr, isNil, uniq, uniqBy } from 'ramda';
import { useForm } from 'react-hook-form';
import 'quill/dist/quill.core.css';
import { wrap } from 'object-path-immutable';
@@ -47,6 +47,7 @@ import FileuploadApplicationSignedPdf from '../../components/FileuploadApplicati
import { defaultMaxFileSize } from '../../configData';
import parseCommaDecimal from '../../helpers/parseCommaDecimal';
import CompanyDocumentsService from '../../service/company-documents-service';
const BandoApplication = () => {
const chosenCompanyId = useStore().main.chosenCompanyId();
@@ -62,6 +63,8 @@ const BandoApplication = () => {
const [applicationStatus, setApplicationStatus] = useState('');
const [activeStep, setActiveStep] = useState(1);
const [signedPdfFile, setSignedPdfFile] = useState([]);
const [companyDocs, setCompanyDocs] = useState([]);
const [personalDocs, setPersonalDocs] = useState([]);
const [isRequestForApplData, setIsRequestForApplData] = useState(false);
const isAsyncRequest = useStore().main.isAsyncRequest();
const previousStatus = useRef('');
@@ -217,7 +220,7 @@ const BandoApplication = () => {
}
fieldVal = isEmpty(fieldVal) ? null : fieldVal;
if (formField && formField.name === 'fileupload') {
if (formField && ['fileupload', 'fileselect'].includes(formField.name)) {
fieldVal = is(Array, fieldVal) ? fieldVal.map(o => o.id).join(',') : null;
}
acc.push({
@@ -540,6 +543,27 @@ const BandoApplication = () => {
? ['.p7m', '.pdf']
: ['.p7m'];
const getDocsCallback = (resp, type) => {
if (resp.status === 'SUCCESS') {
if (type === 'PERSONAL_DOCUMENT') {
setPersonalDocs(uniqBy((o) => o.id, getFormattedDocsData(resp.data)));
} else {
setCompanyDocs(uniqBy((o) => o.id, getFormattedDocsData(resp.data)));
}
}
}
const errDocsGetCallbacks = () => {
}
const getFormattedDocsData = (data) => {
return data.map((d) => {
d.callEndDate = is(String, d.callEndDate) ? new Date(d.callEndDate) : (d.callEndDate ? d.callEndDate : '');
return d;
});
};
useEffect(() => {
let updatedFormValues = klona(formValues);
let context = {};
@@ -628,6 +652,12 @@ const BandoApplication = () => {
ApplicationService.getApplicationForm(applId, getApplFormCallback, errGetApplFormCallbacks, [
['companyId', chosenCompanyId]
]);
CompanyDocumentsService.getCompanyDocuments(chosenCompanyId, (resp) => getDocsCallback(resp, 'COMPANY_DOCUMENT'), errDocsGetCallbacks, [
['documentType', 'COMPANY_DOCUMENT']
]);
CompanyDocumentsService.getCompanyDocuments(chosenCompanyId, (resp) => getDocsCallback(resp, 'PERSONAL_DOCUMENT'), errDocsGetCallbacks, [
['documentType', 'PERSONAL_DOCUMENT']
]);
}
}, [id, chosenCompanyId]);
@@ -684,7 +714,9 @@ const BandoApplication = () => {
const label = head(o.settings.filter(o => o.name === 'label'));
const text = head(o.settings.filter(o => o.name === 'text'));
const placeholder = head(o.settings.filter(o => o.name === 'placeholder'));
const options = head(o.settings.filter(o => o.name === 'options'));
const options = ['fileselect'].includes(o.name)
? {value: [...companyDocs, ...personalDocs]}
: head(o.settings.filter(o => o.name === 'options'));
let tableColumns = head(o.settings.filter(o => o.name === 'table_columns'));
if (!tableColumns) {
tableColumns = head(o.settings.filter(o => o.name === 'criteria_table_columns'));
@@ -718,9 +750,9 @@ const BandoApplication = () => {
return acc;
}, {});
/*if (o.name === 'table') {
console.log('value:', values[o.id] ? values[o.id] : '')
}*/
if (o.name === 'fileselect') {
console.log('options::', options)
}
return ['paragraph'].includes(o.name) && text
? <div key={o.id}>