From 062f10a25d43b875d187cf582b2ecf96d075ec26 Mon Sep 17 00:00:00 2001 From: eug-vs Date: Thu, 25 Mar 2021 23:09:49 +0300 Subject: refactor: move services to separate folder --- src/containers/ContractorForm.tsx | 14 ----- src/containers/ContractorPanel.tsx | 34 ------------ src/containers/Page.tsx | 2 +- src/containers/ProductForm.tsx | 15 ------ src/containers/Service/ServiceContext.tsx | 9 ++-- src/containers/TransferForm.tsx | 44 ---------------- src/containers/TransfersUpload.tsx | 41 --------------- src/containers/WaybillForm.tsx | 86 ------------------------------- src/containers/WaybillPanel.tsx | 42 --------------- 9 files changed, 6 insertions(+), 281 deletions(-) delete mode 100644 src/containers/ContractorForm.tsx delete mode 100644 src/containers/ContractorPanel.tsx delete mode 100644 src/containers/ProductForm.tsx delete mode 100644 src/containers/TransferForm.tsx delete mode 100644 src/containers/TransfersUpload.tsx delete mode 100644 src/containers/WaybillForm.tsx delete mode 100644 src/containers/WaybillPanel.tsx (limited to 'src/containers') diff --git a/src/containers/ContractorForm.tsx b/src/containers/ContractorForm.tsx deleted file mode 100644 index 56d38be..0000000 --- a/src/containers/ContractorForm.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import React from 'react'; -import { Form } from 'formik'; -import Input from '../components/Input'; - -const ContractorForm: React.FC = () => { - return ( -
- - -
- ); -}; - -export default ContractorForm; diff --git a/src/containers/ContractorPanel.tsx b/src/containers/ContractorPanel.tsx deleted file mode 100644 index 6a209c3..0000000 --- a/src/containers/ContractorPanel.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import React from 'react'; -import { useHistory } from 'react-router-dom'; -import Button from '../components/Button'; -import { patch, baseURL } from '../requests'; -import { PanelProps } from './Service/ServiceContext'; - - -const ContractorPanel: React.FC = ({ item, mutate }) => { - const history = useHistory(); - - return ( -
- - Долг контрагента: {item.debt} - -
- - - - -
-
- ); -}; - -export default ContractorPanel; diff --git a/src/containers/Page.tsx b/src/containers/Page.tsx index c4d4efd..d3a087a 100644 --- a/src/containers/Page.tsx +++ b/src/containers/Page.tsx @@ -16,7 +16,7 @@ const style = 'mb-2 flex justify-between md:flex-row md:items-center'; const Page: React.FC = ({ title, actions, className, children }) => ( -
1 ? 'flex-col items-start' : 'flex-row items-center'}`}> +
1 ? 'flex-col items-start' : 'flex-row items-center'}`}> {title}
{actions?.map(action => ())} diff --git a/src/containers/ProductForm.tsx b/src/containers/ProductForm.tsx deleted file mode 100644 index 6957916..0000000 --- a/src/containers/ProductForm.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import React from 'react'; -import { Form } from 'formik'; -import Input from '../components/Input'; - - -const ProductForm: React.FC = () => { - return ( -
- - -
- ); -}; - -export default ProductForm; diff --git a/src/containers/Service/ServiceContext.tsx b/src/containers/Service/ServiceContext.tsx index 68ff907..75ac0fb 100644 --- a/src/containers/Service/ServiceContext.tsx +++ b/src/containers/Service/ServiceContext.tsx @@ -1,21 +1,22 @@ import React from 'react'; import { FormikProps } from 'formik'; +import { Action } from '../Page'; export interface PanelProps { item: any; mutate: (item: any) => void; } -type Route = Record; - export interface ServiceParams { route: string; name: string; nameSingular: string; tableFields: any[]; default: Record; - routes?: Route[]; - Form?: React.FC; + routes?: Record; + actions?: Action[]; + rowLink?: (item: any) => string; + Form?: React.FC>; Panel?: React.FC; } diff --git a/src/containers/TransferForm.tsx b/src/containers/TransferForm.tsx deleted file mode 100644 index 801150e..0000000 --- a/src/containers/TransferForm.tsx +++ /dev/null @@ -1,44 +0,0 @@ -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 = ({ setFieldValue, values }) => { - const { data: contractors } = hooks.contractors.useList(); - - if (!values.date) setFieldValue('date', moment().format('YYYY-MM-DD')); - if (!values.contractorId && contractors?.length) setFieldValue('contractorId', contractors[0]._id); - - return ( -
-
- -
-
- -
-
- ); -}; - -export default TransferForm; diff --git a/src/containers/TransfersUpload.tsx b/src/containers/TransfersUpload.tsx deleted file mode 100644 index bddd0ad..0000000 --- a/src/containers/TransfersUpload.tsx +++ /dev/null @@ -1,41 +0,0 @@ -import React from 'react'; -import { useHistory } from 'react-router-dom'; -import { Form, Formik } from 'formik'; -import Button from '../components/Button'; -import Input from '../components/Input'; -import Page, { Action } from './Page'; -import { post } from '../requests'; - -const TransfersUpload: React.FC = () => { - const history = useHistory(); - - const handleSubmitFile = () => { - const reader = new FileReader(); - const file = document.getElementById('file').files[0]; - reader.readAsDataURL(file); - reader.onload = (e: any) => { - const uri = e.target.result; - post('/uploads', { uri }).then(history.goBack); - }; - }; - - const actions: Action[] = [ - { name: 'Назад', variant: 'outlined', onClick: history.goBack }, - { name: 'Загрузить', type: 'submit', form: 'form' }, - ]; - - return ( - - -
- -
-
-
- ); -}; - -export default TransfersUpload; diff --git a/src/containers/WaybillForm.tsx b/src/containers/WaybillForm.tsx deleted file mode 100644 index a924cc5..0000000 --- a/src/containers/WaybillForm.tsx +++ /dev/null @@ -1,86 +0,0 @@ -import React from 'react'; -import { Form, FormikProps } from 'formik'; -import _ from 'lodash'; -import moment from 'moment'; -import Input from '../components/Input'; -import Button from '../components/Button'; -import Select from '../components/Select'; -import Paper from '../components/Paper'; -import hooks from '../hooks/useAPIClient'; - - -const mapper = (item: any) => ({ key: item._id, label: item.name }); - - -const WaybillForm: React.FC = ({ setFieldValue, values }) => { - const { data: products } = hooks.products.useList(); - const { data: contractors } = hooks.contractors.useList(); - - if (!values.date) setFieldValue('date', moment().format('YYYY-MM-DD')); - if (!values.contractorId && contractors?.length) setFieldValue('contractorId', contractors[0]._id); - - const handleAddRecord = () => setFieldValue('records', [...values.records, { - productId: _.map(products, '_id').reduce((acc, id) => { - return acc || (!_.map(values.records, 'productId').includes(id) && id); - }, false), - price: '', - quantity: 1, - }]); - - const handleRemoveRecord = (index: number) => () => { - const records = [...values.records]; - records.splice(index, 1); - setFieldValue('records', records); - }; - - return ( -
- - -
- {values.records.map((record, index) => ( - - - -
- -
-
- - ))} - - - ); -}; - -export default WaybillForm; diff --git a/src/containers/WaybillPanel.tsx b/src/containers/WaybillPanel.tsx deleted file mode 100644 index b90447e..0000000 --- a/src/containers/WaybillPanel.tsx +++ /dev/null @@ -1,42 +0,0 @@ -import React from 'react'; -import { useHistory } from 'react-router-dom'; -import Button from '../components/Button'; -import { patch, baseURL } from '../requests'; -import { PanelProps } from './Service/ServiceContext'; - - -const WaybillPanel: React.FC = ({ item, mutate }) => { - const history = useHistory(); - - const handleChangeStatus = status => patch(`/waybills/${item._id}`, { status }) - .then(() => { - history.push('/waybills'); - mutate({ ...item, status }); - }); - - const handlePrint = () => window.open(`${baseURL}/spreadsheets/${item._id}`, '_blank'); - - const handleExecute = () => handleChangeStatus('executed'); - const handleCancel = () => handleChangeStatus('cancelled'); - - const executed = item.status === 'executed'; - - return ( -
-
- - - Итоговая сумма: ${item.total} - -
-
- ); -}; - -export default WaybillPanel; -- cgit v1.2.3