From 786dc90d89dbb2deaef0282301d88b1568d56a33 Mon Sep 17 00:00:00 2001 From: eug-vs Date: Sat, 20 Mar 2021 20:37:22 +0300 Subject: feat: handle query params and add Account page --- src/containers/Service/ServiceList.tsx | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) (limited to 'src/containers/Service') diff --git a/src/containers/Service/ServiceList.tsx b/src/containers/Service/ServiceList.tsx index 7d30c14..a0536b5 100644 --- a/src/containers/Service/ServiceList.tsx +++ b/src/containers/Service/ServiceList.tsx @@ -1,29 +1,28 @@ import React, { useContext } from 'react'; -import { useHistory } from 'react-router-dom'; +import { useHistory, useLocation } 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 location = useLocation(); + const { data } = hooks[service.route].useList(location.search); - const actions = [ - ...( - service.actions?.map(action => ({ - ...action, - route: `/${service.route}/${action.route}`, - })) || [] - ), - { name: 'Добавить', route: `/${service.route}/add` }, - ]; + const actions = service.actions || [{ + name: 'Добавить', + route: `/${service.route}/add`, + }]; const handleRowClick = (index: number) => { const item = data && data[index]; - history.push(`/${service.route}/${item?._id}`); + const route = service.rowLink + ? service.rowLink(item) + : `/${service.route}/${item?._id}`; + + history.push(route); }; return ( -- cgit v1.2.3