import { mdiChartTimelineVariant, mdiUpload } from '@mdi/js' import Head from 'next/head' import React, { ReactElement, useEffect, useState } from 'react' import DatePicker from "react-datepicker"; import "react-datepicker/dist/react-datepicker.css"; import dayjs from "dayjs"; import CardBox from '../../components/CardBox' import LayoutAuthenticated from '../../layouts/Authenticated' import SectionMain from '../../components/SectionMain' import SectionTitleLineWithButton from '../../components/SectionTitleLineWithButton' import { getPageTitle } from '../../config' import EnhancedEntityEditShell from '../../components/EntityPage/EnhancedEntityEditShell' import { Field, Form, Formik } from 'formik' import FormField from '../../components/FormField' import BaseDivider from '../../components/BaseDivider' import BaseButtons from '../../components/BaseButtons' import BaseButton from '../../components/BaseButton' import FormCheckRadio from '../../components/FormCheckRadio' import FormCheckRadioGroup from '../../components/FormCheckRadioGroup' import FormFilePicker from '../../components/FormFilePicker' import FormImagePicker from '../../components/FormImagePicker' import { SelectField } from "../../components/SelectField"; import { SelectFieldMany } from "../../components/SelectFieldMany"; import { SwitchField } from '../../components/SwitchField' import {RichTextField} from "../../components/RichTextField"; import { update, fetch } from '../../stores/procurement_plans/procurement_plansSlice' import { useAppDispatch, useAppSelector } from '../../stores/hooks' import { useRouter } from 'next/router' import {saveFile} from "../../helpers/fileSaver"; import dataFormatter from '../../helpers/dataFormatter'; import ImageField from "../../components/ImageField"; import {hasPermission} from "../../helpers/userPermissions"; const EditProcurement_plansPage = () => { const router = useRouter() const dispatch = useAppDispatch() const initVals = { organization: null, fiscal_year: null, department: null, 'name': '', status: '', 'estimated_total_amount': '', currency: '', submitted_at: new Date(), approved_at: new Date(), } const [initialValues, setInitialValues] = useState(initVals) const { procurement_plans } = useAppSelector((state) => state.procurement_plans) const { currentUser } = useAppSelector((state) => state.auth); const { id } = router.query useEffect(() => { dispatch(fetch({ id: id })) }, [id]) useEffect(() => { if (typeof procurement_plans === 'object') { setInitialValues(procurement_plans) } }, [procurement_plans]) useEffect(() => { if (typeof procurement_plans === 'object') { const newInitialVal = {...initVals}; Object.keys(initVals).forEach(el => newInitialVal[el] = (procurement_plans)[el]) setInitialValues(newInitialVal); } }, [procurement_plans]) const handleSubmit = async (data) => { await dispatch(update({ id: id, data })) await router.push('/procurement_plans/procurement_plans-list') } return ( <> {getPageTitle('Edit procurement_plans')} {''} handleSubmit(values)} >
{hasPermission(currentUser, 'READ_ORGANIZATIONS') && } setInitialValues({...initialValues, 'submitted_at': date})} /> setInitialValues({...initialValues, 'approved_at': date})} /> router.push('/procurement_plans/procurement_plans-list')}/>
) } EditProcurement_plansPage.getLayout = function getLayout(page: ReactElement) { return ( {page} ) } export default EditProcurement_plansPage