From 326e395aa095ed84af96db4ff01527a38301dfdd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Salgado?= Date: Wed, 22 Dec 2021 15:03:30 +0000 Subject: [PATCH] fix: customers page filter deletion --- .../src/pages/Customers/Customers.js | 49 ++++++++++++++----- 1 file changed, 38 insertions(+), 11 deletions(-) diff --git a/new-lamassu-admin/src/pages/Customers/Customers.js b/new-lamassu-admin/src/pages/Customers/Customers.js index f263de86..09565cb4 100644 --- a/new-lamassu-admin/src/pages/Customers/Customers.js +++ b/new-lamassu-admin/src/pages/Customers/Customers.js @@ -51,6 +51,9 @@ const GET_CUSTOMERS = gql` const useBaseStyles = makeStyles(baseStyles) +const getFiltersObj = filters => + R.reduce((s, f) => ({ ...s, [f.type]: f.value }), {}, filters) + const Customers = () => { const baseStyles = useBaseStyles() const history = useHistory() @@ -82,12 +85,7 @@ const Customers = () => { ) const onFilterChange = filters => { - const filtersObject = R.compose( - R.mergeAll, - R.map(f => ({ - [f.type]: f.value - })) - )(filters) + const filtersObject = getFiltersObj(filters) setFilters(filters) @@ -101,10 +99,38 @@ const Customers = () => { refetch && refetch() } - const onFilterDelete = filter => - setFilters( - R.filter(f => !R.whereEq(R.pick(['type', 'value'], f), filter))(filters) - ) + const onFilterDelete = filter => { + const newFilters = R.filter( + f => !R.whereEq(R.pick(['type', 'value'], f), filter) + )(filters) + + setFilters(newFilters) + + const filtersObject = getFiltersObj(newFilters) + + setVariables({ + phone: filtersObject.phone, + name: filtersObject.name, + address: filtersObject.address, + id: filtersObject.id + }) + + refetch && refetch() + } + + const deleteAllFilters = () => { + setFilters([]) + const filtersObject = getFiltersObj([]) + + setVariables({ + phone: filtersObject.phone, + name: filtersObject.name, + address: filtersObject.address, + id: filtersObject.id + }) + + refetch && refetch() + } const filterOptions = R.path(['customerFilters'])(filtersResponse) @@ -131,9 +157,10 @@ const Customers = () => { /> {filters.length > 0 && ( )}