From de4811ce8d2e739901c047f39e9b4b7c18298e74 Mon Sep 17 00:00:00 2001 From: eug-vs Date: Sun, 14 Mar 2021 07:05:45 +0300 Subject: feat: add Contractors section --- src/containers/ContractorForm.tsx | 52 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 src/containers/ContractorForm.tsx (limited to 'src/containers/ContractorForm.tsx') diff --git a/src/containers/ContractorForm.tsx b/src/containers/ContractorForm.tsx new file mode 100644 index 0000000..7f0d660 --- /dev/null +++ b/src/containers/ContractorForm.tsx @@ -0,0 +1,52 @@ +import React from 'react'; +import { useParams, useHistory } from 'react-router-dom'; +import { Formik, Form, Field } from 'formik'; +import Page, { Action } from './Page'; +import Input from '../components/Input'; +import { useContractor } from '../hooks/useAPIClient'; +import { post, patch } from '../requests'; + +interface Params { + id: string; +} + +const actions: Action[] = [ + { name: 'Назад', variant: 'outlined', route: '..' }, + { name: 'Сохранить', type: 'submit', form: 'contractorForm' }, +]; + +const ContractorForm: React.FC = () => { + const history = useHistory(); + const { id } = useParams(); + const { data: contractor } = useContractor(id); + + const onSubmit = (values: any) => { + const promise = id + ? patch(`/contractors/${id}`, values) + : post('/contractors', values); + return promise.then(() => history.push('/contractors')); + }; + + return ( + + {(!id || contractor) && ( + + {() => ( +
+
+ + + +
+
+ )} +
+ )} +
+ ); +}; + +export default ContractorForm; -- cgit v1.2.3