diff options
author | eug-vs <eug-vs@keemail.me> | 2021-03-14 10:10:16 +0300 |
---|---|---|
committer | eug-vs <eug-vs@keemail.me> | 2021-03-14 10:10:16 +0300 |
commit | 2c106d1d3f6d59b10ad946e01e8bb3d0df587e40 (patch) | |
tree | d0eff1bb17d55c34e52eb7c77d30631eaee87839 /src/containers/Service/ServiceList.tsx | |
parent | de4811ce8d2e739901c047f39e9b4b7c18298e74 (diff) | |
download | commercel-ui-2c106d1d3f6d59b10ad946e01e8bb3d0df587e40.tar.gz |
refactor: create Service abstraction
Diffstat (limited to 'src/containers/Service/ServiceList.tsx')
-rw-r--r-- | src/containers/Service/ServiceList.tsx | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/containers/Service/ServiceList.tsx b/src/containers/Service/ServiceList.tsx new file mode 100644 index 0000000..6af2d1b --- /dev/null +++ b/src/containers/Service/ServiceList.tsx @@ -0,0 +1,28 @@ +import React, { useContext } from 'react'; +import { useHistory } from 'react-router-dom'; +import Page from '../Page'; +import ListTable from '../../components/ListTable'; +import hooks from '../../hooks/useAPIClient'; +import ServiceContext from './ServiceContext'; + + +const ServiceList: React.FC = () => { + const service = useContext(ServiceContext); + const history = useHistory(); + const { data } = hooks[service.route].useList(); + + const actions = [{ name: 'Добавить', route: `/${service.route}/add` }]; + + const handleRowClick = (index: number) => { + const item = data && data[index]; + history.push(`/${service.route}/edit/${item?._id}`); + }; + + return ( + <Page title={service.name} actions={actions}> + <ListTable items={data} fields={service.tableFields} handleRowClick={handleRowClick} /> + </Page> + ); +}; + +export default ServiceList; |