summaryrefslogtreecommitdiff
path: root/src/containers/TransferForm.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/containers/TransferForm.tsx')
-rw-r--r--src/containers/TransferForm.tsx44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/containers/TransferForm.tsx b/src/containers/TransferForm.tsx
new file mode 100644
index 0000000..afb2dff
--- /dev/null
+++ b/src/containers/TransferForm.tsx
@@ -0,0 +1,44 @@
+import React from 'react';
+import { Form, FormikProps } from 'formik';
+import moment from 'moment';
+import Input from '../components/Input';
+import Select from '../components/Select';
+import hooks from '../hooks/useAPIClient';
+
+
+const mapper = (item: any) => ({ key: item._id, label: item.name });
+
+
+const TransferForm: React.FC<FormikProps> = ({ setFieldValue, values }) => {
+ const { data: contractors } = hooks.contractors.useList();
+
+ if (!values.date) setFieldValue('date', moment().format('YYYY-MM-DD'));
+ if (!values.contractorId && contractors) setFieldValue('contractorId', contractors[0]._id);
+
+ return (
+ <Form id="form">
+ <div className="grid grid-cols-2">
+ <Select
+ name="contractorId"
+ label="Контрагент"
+ options={contractors?.map(mapper)}
+ required
+ />
+ <Input name="date" type="date" label="Дата" required />
+ </div>
+ <div className="grid grid-cols-2">
+ <Select
+ name="operation"
+ label="Операция"
+ options={[
+ { key: 'in', label: 'Приход' },
+ { key: 'out', label: 'Расход' },
+ ]}
+ />
+ <Input name="amount" type="number" label="Сумма" required />
+ </div>
+ </Form>
+ );
+};
+
+export default TransferForm;