diff --git a/src/pages/DocumentsBeneficiary/components/DocumentsTable/index.js b/src/pages/DocumentsBeneficiary/components/DocumentsTable/index.js index 52ed254..5c132ce 100644 --- a/src/pages/DocumentsBeneficiary/components/DocumentsTable/index.js +++ b/src/pages/DocumentsBeneficiary/components/DocumentsTable/index.js @@ -24,8 +24,9 @@ import { Tag } from 'primereact/tag'; import ProperBandoLabel from '../../../../components/ProperBandoLabel'; import { confirmPopup, ConfirmPopup } from 'primereact/confirmpopup'; -const DocumentsTable = ({ type, reload = 0 }) => { - const chosenCompanyId = useStoreValue('chosenCompanyId'); +const DocumentsTable = ({ type, reload = 0, companyId: companyIdProp }) => { + const storedCompanyId = useStoreValue('chosenCompanyId'); + const effectiveCompanyId = companyIdProp || storedCompanyId; const companies = useStoreValue('companies'); const [docs, setDocs] = useState([]); const [filters, setFilters] = useState(null); @@ -33,22 +34,26 @@ const DocumentsTable = ({ type, reload = 0 }) => { const [statuses, setStatuses] = useState([]); useEffect(() => { - const existingCompany = head(companies.filter(o => o.id === chosenCompanyId)); + const shouldFetch = companyIdProp + ? !!effectiveCompanyId + : !!head(companies.filter(o => o.id === effectiveCompanyId)); - if (!loading && existingCompany && reload !== 0) { + if (!loading && shouldFetch && reload !== 0) { setLoading(true); - CompanyDocumentsService.getCompanyDocuments(chosenCompanyId, getCallback, errGetCallbacks, [ + CompanyDocumentsService.getCompanyDocuments(effectiveCompanyId, getCallback, errGetCallbacks, [ ['documentType', type] ]); } - }, [chosenCompanyId, reload, companies]); + }, [effectiveCompanyId, reload, companies]); useEffect(() => { - const existingCompany = head(companies.filter(o => o.id === chosenCompanyId)); + const shouldFetch = companyIdProp + ? !!effectiveCompanyId + : !!head(companies.filter(o => o.id === effectiveCompanyId)); - if (existingCompany) { + if (shouldFetch) { setLoading(true); - CompanyDocumentsService.getCompanyDocuments(chosenCompanyId, getCallback, errGetCallbacks, [ + CompanyDocumentsService.getCompanyDocuments(effectiveCompanyId, getCallback, errGetCallbacks, [ ['documentType', type] ]); } diff --git a/src/pages/DomandaEditPreInstructor/components/EvaluationExtraFiles/index.js b/src/pages/DomandaEditPreInstructor/components/EvaluationExtraFiles/index.js index 78a63b1..43fd573 100644 --- a/src/pages/DomandaEditPreInstructor/components/EvaluationExtraFiles/index.js +++ b/src/pages/DomandaEditPreInstructor/components/EvaluationExtraFiles/index.js @@ -1,22 +1,30 @@ import React, { useMemo, useState, useCallback, useEffect, useRef } from 'react'; import { useForm, useFieldArray } from 'react-hook-form'; -import { isEmpty, head, pluck } from 'ramda'; +import { isEmpty, head, isNil } from 'ramda'; import { __ } from '@wordpress/i18n'; import { klona } from 'klona'; +import { wrap } from 'object-path-immutable'; +import { classNames } from 'primereact/utils'; // tools import uniqid from '../../../../helpers/uniqid'; +import formatDateString from '../../../../helpers/formatDateString'; // components import FormField from '../../../../components/FormField'; import { Button } from 'primereact/button'; import { Dialog } from 'primereact/dialog'; import { Toast } from 'primereact/toast'; -import CompanyService from '../../../../service/company-service'; -import FileSelect from '../../../../components/FormField/components/FileSelect'; -import ApplicationService from '../../../../service/application-service'; +import { Dropdown } from 'primereact/dropdown'; +import { InputText } from 'primereact/inputtext'; +import { Calendar } from 'primereact/calendar'; +import { FileUpload } from 'primereact/fileupload'; +import DocumentsTable from '../../../DocumentsBeneficiary/components/DocumentsTable'; + +// services +import CompanyDocumentsService from '../../../../service/company-documents-service'; +import DocumentCategoryService from '../../../../service/document-category-service'; import set404FromErrorResponse from '../../../../helpers/set404FromErrorResponse'; -import { storeSet } from '../../../../store'; const EvaluationExtraFiles = ({ sourceId, @@ -32,9 +40,16 @@ const EvaluationExtraFiles = ({ }) => { const [chosen, setChosen] = useState(''); const [isVisibleCompanyDocsDialog, setIsVisibleCompanyDocsDialog] = useState(false); - const [companyDocs, setCompanyDocs] = useState([]); - const [companyDocsSelected, setCompanyDocsSelected] = useState([]); + const [isVisibleAddDocDialog, setIsVisibleAddDocDialog] = useState(false); + const [newDocData, setNewDocData] = useState({}); + const [docFileAttached, setDocFileAttached] = useState([]); + const [documentCategories, setDocumentCategories] = useState([]); + const [addDocLoading, setAddDocLoading] = useState(false); + const [reloadHash, setReloadHash] = useState(0); const toast = useRef(null); + const today = new Date(); + const tomorrow = new Date(today); + tomorrow.setDate(today.getDate() + 1); const { control, handleSubmit, @@ -107,74 +122,113 @@ const EvaluationExtraFiles = ({ const hideCompanyDocsDialog = () => { setIsVisibleCompanyDocsDialog(false); - setCompanyDocsSelected([]); } - const footerPreTecEvalDialog = useCallback(() => { + const footerCompanyDocsDialog = () => { return