summaryrefslogtreecommitdiff
path: root/src/containers/Page.tsx
diff options
context:
space:
mode:
authoreug-vs <eug-vs@keemail.me>2021-04-17 15:44:57 +0300
committereug-vs <eug-vs@keemail.me>2021-04-17 15:44:57 +0300
commit929cf0fa6cbbdb9983e09599a4ad303ba613771e (patch)
treee2d8710b9e8603729fd6c6d6aac2cbf95c9b8031 /src/containers/Page.tsx
parentcfdce1fb1179cfe4f15fc26676f064ca10fb9ce4 (diff)
downloadcommercel-ui-929cf0fa6cbbdb9983e09599a4ad303ba613771e.tar.gz
feat: add reset filters button
Diffstat (limited to 'src/containers/Page.tsx')
-rw-r--r--src/containers/Page.tsx17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/containers/Page.tsx b/src/containers/Page.tsx
index 458bf15..69f3513 100644
--- a/src/containers/Page.tsx
+++ b/src/containers/Page.tsx
@@ -1,4 +1,5 @@
import React from 'react';
+import { useLocation } from 'react-router-dom';
import Paper from '../components/Paper';
import Button from '../components/Button';
import { Action, Filter } from '../lib/ServiceContext';
@@ -9,12 +10,15 @@ interface Props {
actions?: Action[];
filters?: Filter[];
applyFilter?: (key: string, value: string) => void;
+ resetFilters?: () => void;
className?: string;
}
const style = 'mb-2 flex justify-between md:flex-row md:items-center';
-const Page: React.FC<Props> = ({ title, actions, filters, applyFilter, className, children }) => {
+const Page: React.FC<Props> = ({ title, actions, filters, applyFilter, resetFilters, className, children }) => {
+ const location = useLocation();
+
const handleFilterChange = (key: string) => (event: React.ChangeEvent<HTMLSelectElement>) => {
if (applyFilter) applyFilter(key, event.target.value);
};
@@ -24,7 +28,16 @@ const Page: React.FC<Props> = ({ title, actions, filters, applyFilter, className
<div className={`${style} ${(actions?.length || 0) > 1 ? 'flex-col items-start' : 'flex-row items-center'}`}>
<span className="text-2xl font-bold">{title}</span>
<div className="flex">
- <div className="mr-6 flex">
+ <div className="mr-6 flex items-center">
+ {filters && location.search && (
+ <span
+ onClick={resetFilters}
+ role="presentation"
+ className="underline mr-2 cursor-pointer"
+ >
+ Сбросить фильтры
+ </span>
+ )}
{filters?.map(filter => (
<SelectBase
key={filter.key}