Add tab selector util for lists and refactor (#1421)

* Add tab selector util for lists, refactor

* Remove unnecessary imports

* Update types

Co-authored-by: Jakub Majorek <majorek.jakub@gmail.com>

Co-authored-by: Jakub Majorek <majorek.jakub@gmail.com>
This commit is contained in:
Magdalena Markusik 2021-09-21 16:06:45 +02:00 committed by GitHub
parent 6e102964a1
commit c566539cc1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
29 changed files with 132 additions and 155 deletions

View file

@ -1,10 +1,10 @@
import { IconButton } from "@material-ui/core"; import { IconButton } from "@material-ui/core";
import DeleteIcon from "@material-ui/icons/Delete"; import DeleteIcon from "@material-ui/icons/Delete";
import { import {
areFiltersApplied,
deleteFilterTab, deleteFilterTab,
getActiveFilters, getActiveFilters,
getFilterOpts, getFilterOpts,
getFiltersCurrentTab,
getFilterTabs, getFilterTabs,
getFilterVariables, getFilterVariables,
saveFilterTab saveFilterTab
@ -92,12 +92,7 @@ const AttributeList: React.FC<AttributeListProps> = ({ params }) => {
const tabs = getFilterTabs(); const tabs = getFilterTabs();
const currentTab = const currentTab = getFiltersCurrentTab(params, tabs);
params.activeTab === undefined
? areFiltersApplied(params)
? tabs.length + 1
: 0
: parseInt(params.activeTab, 0);
const [openModal, closeModal] = createDialogActionHandlers< const [openModal, closeModal] = createDialogActionHandlers<
AttributeListUrlDialog, AttributeListUrlDialog,

View file

@ -132,7 +132,10 @@ export const {
saveFilterTab saveFilterTab
} = createFilterTabUtils<AttributeListUrlFilters>(ATTRIBUTE_FILTERS_KEY); } = createFilterTabUtils<AttributeListUrlFilters>(ATTRIBUTE_FILTERS_KEY);
export const { areFiltersApplied, getActiveFilters } = createFilterUtils< export const {
AttributeListUrlQueryParams, areFiltersApplied,
AttributeListUrlFilters getActiveFilters,
>(AttributeListUrlFiltersEnum); getFiltersCurrentTab
} = createFilterUtils<AttributeListUrlQueryParams, AttributeListUrlFilters>(
AttributeListUrlFiltersEnum
);

View file

@ -33,9 +33,9 @@ import {
categoryUrl categoryUrl
} from "../../urls"; } from "../../urls";
import { import {
areFiltersApplied,
deleteFilterTab, deleteFilterTab,
getActiveFilters, getActiveFilters,
getFiltersCurrentTab,
getFilterTabs, getFilterTabs,
getFilterVariables, getFilterVariables,
saveFilterTab saveFilterTab
@ -73,12 +73,7 @@ export const CategoryList: React.FC<CategoryListProps> = ({ params }) => {
const tabs = getFilterTabs(); const tabs = getFilterTabs();
const currentTab = const currentTab = getFiltersCurrentTab(params, tabs);
params.activeTab === undefined
? areFiltersApplied(params)
? tabs.length + 1
: 0
: parseInt(params.activeTab, 0);
const changeFilterField = (filter: CategoryListUrlFilters) => { const changeFilterField = (filter: CategoryListUrlFilters) => {
reset(); reset();

View file

@ -26,7 +26,10 @@ export const {
saveFilterTab saveFilterTab
} = createFilterTabUtils<CategoryListUrlFilters>(CATEGORY_FILTERS_KEY); } = createFilterTabUtils<CategoryListUrlFilters>(CATEGORY_FILTERS_KEY);
export const { areFiltersApplied, getActiveFilters } = createFilterUtils< export const {
CategoryListUrlQueryParams, areFiltersApplied,
CategoryListUrlFilters getActiveFilters,
>(CategoryListUrlFiltersEnum); getFiltersCurrentTab
} = createFilterUtils<CategoryListUrlQueryParams, CategoryListUrlFilters>(
CategoryListUrlFiltersEnum
);

View file

@ -36,11 +36,11 @@ import {
collectionUrl collectionUrl
} from "../../urls"; } from "../../urls";
import { import {
areFiltersApplied,
deleteFilterTab, deleteFilterTab,
getActiveFilters, getActiveFilters,
getFilterOpts, getFilterOpts,
getFilterQueryParam, getFilterQueryParam,
getFiltersCurrentTab,
getFilterTabs, getFilterTabs,
getFilterVariables, getFilterVariables,
saveFilterTab saveFilterTab
@ -129,12 +129,7 @@ export const CollectionList: React.FC<CollectionListProps> = ({ params }) => {
} }
}, [params]); }, [params]);
const currentTab = const currentTab = getFiltersCurrentTab(params, tabs);
params.activeTab === undefined
? areFiltersApplied(params)
? tabs.length + 1
: 0
: parseInt(params.activeTab, 0);
const [openModal, closeModal] = createDialogActionHandlers< const [openModal, closeModal] = createDialogActionHandlers<
CollectionListUrlDialog, CollectionListUrlDialog,

View file

@ -78,7 +78,10 @@ export const {
saveFilterTab saveFilterTab
} = createFilterTabUtils<CollectionListUrlFilters>(COLLECTION_FILTERS_KEY); } = createFilterTabUtils<CollectionListUrlFilters>(COLLECTION_FILTERS_KEY);
export const { areFiltersApplied, getActiveFilters } = createFilterUtils< export const {
CollectionListUrlQueryParams, areFiltersApplied,
CollectionListUrlFilters getActiveFilters,
>(CollectionListUrlFiltersEnum); getFiltersCurrentTab
} = createFilterUtils<CollectionListUrlQueryParams, CollectionListUrlFilters>(
CollectionListUrlFiltersEnum
);

View file

@ -35,11 +35,11 @@ import {
customerUrl customerUrl
} from "../../urls"; } from "../../urls";
import { import {
areFiltersApplied,
deleteFilterTab, deleteFilterTab,
getActiveFilters, getActiveFilters,
getFilterOpts, getFilterOpts,
getFilterQueryParam, getFilterQueryParam,
getFiltersCurrentTab,
getFilterTabs, getFilterTabs,
getFilterVariables, getFilterVariables,
saveFilterTab saveFilterTab
@ -78,12 +78,7 @@ export const CustomerList: React.FC<CustomerListProps> = ({ params }) => {
const tabs = getFilterTabs(); const tabs = getFilterTabs();
const currentTab = const currentTab = getFiltersCurrentTab(params, tabs);
params.activeTab === undefined
? areFiltersApplied(params)
? tabs.length + 1
: 0
: parseInt(params.activeTab, 0);
const [ const [
changeFilters, changeFilters,

View file

@ -97,7 +97,10 @@ export const {
saveFilterTab saveFilterTab
} = createFilterTabUtils<CustomerListUrlFilters>(CUSTOMER_FILTERS_KEY); } = createFilterTabUtils<CustomerListUrlFilters>(CUSTOMER_FILTERS_KEY);
export const { areFiltersApplied, getActiveFilters } = createFilterUtils< export const {
CustomerListUrlQueryParams, areFiltersApplied,
CustomerListUrlFilters getActiveFilters,
>(CustomerListUrlFiltersEnum); getFiltersCurrentTab
} = createFilterUtils<CustomerListUrlQueryParams, CustomerListUrlFilters>(
CustomerListUrlFiltersEnum
);

View file

@ -37,11 +37,11 @@ import {
saleUrl saleUrl
} from "../../urls"; } from "../../urls";
import { import {
areFiltersApplied,
deleteFilterTab, deleteFilterTab,
getActiveFilters, getActiveFilters,
getFilterOpts, getFilterOpts,
getFilterQueryParam, getFilterQueryParam,
getFiltersCurrentTab,
getFilterTabs, getFilterTabs,
getFilterVariables, getFilterVariables,
saveFilterTab saveFilterTab
@ -93,12 +93,7 @@ export const SaleList: React.FC<SaleListProps> = ({ params }) => {
const tabs = getFilterTabs(); const tabs = getFilterTabs();
const currentTab = const currentTab = getFiltersCurrentTab(params, tabs);
params.activeTab === undefined
? areFiltersApplied(params)
? tabs.length + 1
: 0
: parseInt(params.activeTab, 0);
const [ const [
changeFilters, changeFilters,

View file

@ -123,10 +123,11 @@ export const {
saveFilterTab saveFilterTab
} = createFilterTabUtils<SaleListUrlFilters>(SALE_FILTERS_KEY); } = createFilterTabUtils<SaleListUrlFilters>(SALE_FILTERS_KEY);
export const { areFiltersApplied, getActiveFilters } = createFilterUtils< export const {
SaleListUrlQueryParams, areFiltersApplied,
SaleListUrlFilters getActiveFilters,
>({ getFiltersCurrentTab
} = createFilterUtils<SaleListUrlQueryParams, SaleListUrlFilters>({
...SaleListUrlFiltersEnum, ...SaleListUrlFiltersEnum,
...SaleListUrlFiltersWithMultipleValues ...SaleListUrlFiltersWithMultipleValues
}); });

View file

@ -37,11 +37,11 @@ import {
voucherUrl voucherUrl
} from "../../urls"; } from "../../urls";
import { import {
areFiltersApplied,
deleteFilterTab, deleteFilterTab,
getActiveFilters, getActiveFilters,
getFilterOpts, getFilterOpts,
getFilterQueryParam, getFilterQueryParam,
getFiltersCurrentTab,
getFilterTabs, getFilterTabs,
getFilterVariables, getFilterVariables,
saveFilterTab saveFilterTab
@ -94,12 +94,7 @@ export const VoucherList: React.FC<VoucherListProps> = ({ params }) => {
const tabs = getFilterTabs(); const tabs = getFilterTabs();
const currentTab = const currentTab = getFiltersCurrentTab(params, tabs);
params.activeTab === undefined
? areFiltersApplied(params)
? tabs.length + 1
: 0
: parseInt(params.activeTab, 0);
const [ const [
changeFilters, changeFilters,

View file

@ -153,10 +153,11 @@ export const {
saveFilterTab saveFilterTab
} = createFilterTabUtils<VoucherListUrlFilters>(VOUCHER_FILTERS_KEY); } = createFilterTabUtils<VoucherListUrlFilters>(VOUCHER_FILTERS_KEY);
export const { areFiltersApplied, getActiveFilters } = createFilterUtils< export const {
VoucherListUrlQueryParams, areFiltersApplied,
VoucherListUrlFilters getActiveFilters,
>({ getFiltersCurrentTab
} = createFilterUtils<VoucherListUrlQueryParams, VoucherListUrlFilters>({
...VoucherListUrlFiltersEnum, ...VoucherListUrlFiltersEnum,
...VoucherListUrlFiltersWithMultipleValues ...VoucherListUrlFiltersWithMultipleValues
}); });

View file

@ -40,11 +40,11 @@ import {
orderUrl orderUrl
} from "../../urls"; } from "../../urls";
import { import {
areFiltersApplied,
deleteFilterTab, deleteFilterTab,
getActiveFilters, getActiveFilters,
getFilterOpts, getFilterOpts,
getFilterQueryParam, getFilterQueryParam,
getFiltersCurrentTab,
getFilterTabs, getFilterTabs,
getFilterVariables, getFilterVariables,
saveFilterTab saveFilterTab
@ -90,12 +90,7 @@ export const OrderDraftList: React.FC<OrderDraftListProps> = ({ params }) => {
const tabs = getFilterTabs(); const tabs = getFilterTabs();
const currentTab = const currentTab = getFiltersCurrentTab(params, tabs);
params.activeTab === undefined
? areFiltersApplied(params)
? tabs.length + 1
: 0
: parseInt(params.activeTab, 0);
const [ const [
changeFilters, changeFilters,

View file

@ -85,7 +85,10 @@ export const {
saveFilterTab saveFilterTab
} = createFilterTabUtils<OrderDraftListUrlFilters>(ORDER_DRAFT_FILTERS_KEY); } = createFilterTabUtils<OrderDraftListUrlFilters>(ORDER_DRAFT_FILTERS_KEY);
export const { areFiltersApplied, getActiveFilters } = createFilterUtils< export const {
OrderDraftListUrlQueryParams, areFiltersApplied,
OrderDraftListUrlFilters getActiveFilters,
>(OrderDraftListUrlFiltersEnum); getFiltersCurrentTab
} = createFilterUtils<OrderDraftListUrlQueryParams, OrderDraftListUrlFilters>(
OrderDraftListUrlFiltersEnum
);

View file

@ -33,11 +33,11 @@ import {
orderUrl orderUrl
} from "../../urls"; } from "../../urls";
import { import {
areFiltersApplied,
deleteFilterTab, deleteFilterTab,
getActiveFilters, getActiveFilters,
getFilterOpts, getFilterOpts,
getFilterQueryParam, getFilterQueryParam,
getFiltersCurrentTab,
getFilterTabs, getFilterTabs,
getFilterVariables, getFilterVariables,
saveFilterTab saveFilterTab
@ -85,12 +85,7 @@ export const OrderList: React.FC<OrderListProps> = ({ params }) => {
const tabs = getFilterTabs(); const tabs = getFilterTabs();
const currentTab = const currentTab = getFiltersCurrentTab(params, tabs);
params.activeTab === undefined
? areFiltersApplied(params)
? tabs.length + 1
: 0
: parseInt(params.activeTab, 0);
const [ const [
changeFilters, changeFilters,

View file

@ -116,10 +116,11 @@ export const {
saveFilterTab saveFilterTab
} = createFilterTabUtils<OrderListUrlFilters>(ORDER_FILTERS_KEY); } = createFilterTabUtils<OrderListUrlFilters>(ORDER_FILTERS_KEY);
export const { areFiltersApplied, getActiveFilters } = createFilterUtils< export const {
OrderListUrlQueryParams, areFiltersApplied,
OrderListUrlFilters getActiveFilters,
>({ getFiltersCurrentTab
} = createFilterUtils<OrderListUrlQueryParams, OrderListUrlFilters>({
...OrderListUrlFiltersEnum, ...OrderListUrlFiltersEnum,
...OrderListUrlFiltersWithMultipleValues ...OrderListUrlFiltersWithMultipleValues
}); });

View file

@ -36,9 +36,9 @@ import {
pageTypeUrl pageTypeUrl
} from "../../urls"; } from "../../urls";
import { import {
areFiltersApplied,
deleteFilterTab, deleteFilterTab,
getActiveFilters, getActiveFilters,
getFiltersCurrentTab,
getFilterTabs, getFilterTabs,
getFilterVariables, getFilterVariables,
saveFilterTab saveFilterTab
@ -79,12 +79,7 @@ export const PageTypeList: React.FC<PageTypeListProps> = ({ params }) => {
const tabs = getFilterTabs(); const tabs = getFilterTabs();
const currentTab = const currentTab = getFiltersCurrentTab(params, tabs);
params.activeTab === undefined
? areFiltersApplied(params)
? tabs.length + 1
: 0
: parseInt(params.activeTab, 0);
const changeFilterField = (filter: PageTypeListUrlFilters) => { const changeFilterField = (filter: PageTypeListUrlFilters) => {
reset(); reset();

View file

@ -26,7 +26,10 @@ export const {
saveFilterTab saveFilterTab
} = createFilterTabUtils<PageTypeListUrlFilters>(PAGE_TYPE_FILTERS_KEY); } = createFilterTabUtils<PageTypeListUrlFilters>(PAGE_TYPE_FILTERS_KEY);
export const { areFiltersApplied, getActiveFilters } = createFilterUtils< export const {
PageTypeListUrlQueryParams, areFiltersApplied,
PageTypeListUrlFilters getActiveFilters,
>(PageTypeListUrlFiltersEnum); getFiltersCurrentTab
} = createFilterUtils<PageTypeListUrlQueryParams, PageTypeListUrlFilters>(
PageTypeListUrlFiltersEnum
);

View file

@ -27,11 +27,11 @@ import {
pluginUrl pluginUrl
} from "../../urls"; } from "../../urls";
import { import {
areFiltersApplied,
deleteFilterTab, deleteFilterTab,
getActiveFilters, getActiveFilters,
getFilterOpts, getFilterOpts,
getFilterQueryParam, getFilterQueryParam,
getFiltersCurrentTab,
getFilterTabs, getFilterTabs,
getFilterVariables, getFilterVariables,
saveFilterTab saveFilterTab
@ -65,12 +65,7 @@ export const PluginsList: React.FC<PluginsListProps> = ({ params }) => {
const tabs = getFilterTabs(); const tabs = getFilterTabs();
const currentTab = const currentTab = getFiltersCurrentTab(params, tabs);
params.activeTab === undefined
? areFiltersApplied(params)
? tabs.length + 1
: 0
: parseInt(params.activeTab, 0);
const [ const [
changeFilters, changeFilters,

View file

@ -123,7 +123,10 @@ export const {
saveFilterTab saveFilterTab
} = createFilterTabUtils<PluginListUrlFilters>(PLUGIN_FILTERS_KEY); } = createFilterTabUtils<PluginListUrlFilters>(PLUGIN_FILTERS_KEY);
export const { areFiltersApplied, getActiveFilters } = createFilterUtils< export const {
PluginListUrlQueryParams, areFiltersApplied,
PluginListUrlFilters getActiveFilters,
>(PluginListUrlFiltersEnum); getFiltersCurrentTab
} = createFilterUtils<PluginListUrlQueryParams, PluginListUrlFilters>(
PluginListUrlFiltersEnum
);

View file

@ -37,11 +37,11 @@ import {
productTypeUrl productTypeUrl
} from "../../urls"; } from "../../urls";
import { import {
areFiltersApplied,
deleteFilterTab, deleteFilterTab,
getActiveFilters, getActiveFilters,
getFilterOpts, getFilterOpts,
getFilterQueryParam, getFilterQueryParam,
getFiltersCurrentTab,
getFilterTabs, getFilterTabs,
getFilterVariables, getFilterVariables,
saveFilterTab saveFilterTab
@ -83,12 +83,7 @@ export const ProductTypeList: React.FC<ProductTypeListProps> = ({ params }) => {
const tabs = getFilterTabs(); const tabs = getFilterTabs();
const currentTab = const currentTab = getFiltersCurrentTab(params, tabs);
params.activeTab === undefined
? areFiltersApplied(params)
? tabs.length + 1
: 0
: parseInt(params.activeTab, 0);
const [ const [
changeFilters, changeFilters,

View file

@ -80,7 +80,10 @@ export const {
saveFilterTab saveFilterTab
} = createFilterTabUtils<ProductTypeListUrlFilters>(PRODUCT_TYPE_FILTERS_KEY); } = createFilterTabUtils<ProductTypeListUrlFilters>(PRODUCT_TYPE_FILTERS_KEY);
export const { areFiltersApplied, getActiveFilters } = createFilterUtils< export const {
ProductTypeListUrlQueryParams, areFiltersApplied,
ProductTypeListUrlFilters getActiveFilters,
>(ProductTypeListUrlFiltersEnum); getFiltersCurrentTab
} = createFilterUtils<ProductTypeListUrlQueryParams, ProductTypeListUrlFilters>(
ProductTypeListUrlFiltersEnum
);

View file

@ -68,11 +68,11 @@ import {
useProductExport useProductExport
} from "../../mutations"; } from "../../mutations";
import { import {
areFiltersApplied,
deleteFilterTab, deleteFilterTab,
getActiveFilters, getActiveFilters,
getFilterOpts, getFilterOpts,
getFilterQueryParam, getFilterQueryParam,
getFiltersCurrentTab,
getFilterTabs, getFilterTabs,
getFilterVariables, getFilterVariables,
saveFilterTab saveFilterTab
@ -192,12 +192,7 @@ export const ProductList: React.FC<ProductListProps> = ({ params }) => {
const tabs = getFilterTabs(); const tabs = getFilterTabs();
const currentTab = const currentTab = getFiltersCurrentTab(params, tabs);
params.activeTab === undefined
? areFiltersApplied(params)
? tabs.length + 1
: 0
: parseInt(params.activeTab, 0);
const countAllProducts = useProductCountQuery({ const countAllProducts = useProductCountQuery({
skip: params.action !== "export" skip: params.action !== "export"

View file

@ -386,10 +386,11 @@ export const {
saveFilterTab saveFilterTab
} = createFilterTabUtils<ProductListUrlFilters>(PRODUCT_FILTERS_KEY); } = createFilterTabUtils<ProductListUrlFilters>(PRODUCT_FILTERS_KEY);
export const { areFiltersApplied, getActiveFilters } = createFilterUtils< export const {
ProductListUrlQueryParams, areFiltersApplied,
ProductListUrlFilters getActiveFilters,
>({ getFiltersCurrentTab
} = createFilterUtils<ProductListUrlQueryParams, ProductListUrlFilters>({
...ProductListUrlFiltersEnum, ...ProductListUrlFiltersEnum,
...ProductListUrlFiltersWithMultipleValues, ...ProductListUrlFiltersWithMultipleValues,
...ProductListUrlFiltersAsDictWithMultipleValues ...ProductListUrlFiltersAsDictWithMultipleValues

View file

@ -38,11 +38,11 @@ import {
staffMemberDetailsUrl staffMemberDetailsUrl
} from "../../urls"; } from "../../urls";
import { import {
areFiltersApplied,
deleteFilterTab, deleteFilterTab,
getActiveFilters, getActiveFilters,
getFilterOpts, getFilterOpts,
getFilterQueryParam, getFilterQueryParam,
getFiltersCurrentTab,
getFilterTabs, getFilterTabs,
getFilterVariables, getFilterVariables,
saveFilterTab saveFilterTab
@ -103,12 +103,7 @@ export const StaffList: React.FC<StaffListProps> = ({ params }) => {
const tabs = getFilterTabs(); const tabs = getFilterTabs();
const currentTab = const currentTab = getFiltersCurrentTab(params, tabs);
params.activeTab === undefined
? areFiltersApplied(params)
? tabs.length + 1
: 0
: parseInt(params.activeTab, 0);
const [ const [
changeFilters, changeFilters,

View file

@ -62,7 +62,10 @@ export const {
saveFilterTab saveFilterTab
} = createFilterTabUtils<StaffListUrlFilters>(STAFF_FILTERS_KEY); } = createFilterTabUtils<StaffListUrlFilters>(STAFF_FILTERS_KEY);
export const { areFiltersApplied, getActiveFilters } = createFilterUtils< export const {
StaffListUrlQueryParams, areFiltersApplied,
StaffListUrlFilters getActiveFilters,
>(StaffListUrlFiltersEnum); getFiltersCurrentTab
} = createFilterUtils<StaffListUrlQueryParams, StaffListUrlFilters>(
StaffListUrlFiltersEnum
);

View file

@ -1,5 +1,6 @@
import { IFilter, IFilterElement } from "@saleor/components/Filter"; import { IFilter, IFilterElement } from "@saleor/components/Filter";
import { findValueInEnum } from "@saleor/misc"; import { findValueInEnum } from "@saleor/misc";
import { ActiveTab } from "@saleor/types";
import isArray from "lodash/isArray"; import isArray from "lodash/isArray";
function createFilterUtils< function createFilterUtils<
@ -19,9 +20,21 @@ function createFilterUtils<
return Object.keys(getActiveFilters(params)).some(key => !!params[key]); return Object.keys(getActiveFilters(params)).some(key => !!params[key]);
} }
function getFiltersCurrentTab<TQueryTabParams extends ActiveTab>(
params: TQueryTabParams,
tabs: unknown[]
) {
return params.activeTab === undefined
? areFiltersApplied((params as unknown) as TQueryParams)
? tabs.length + 1
: 0
: parseInt(params.activeTab, 0);
}
return { return {
areFiltersApplied, areFiltersApplied,
getActiveFilters getActiveFilters,
getFiltersCurrentTab
}; };
} }

View file

@ -35,9 +35,9 @@ import React from "react";
import { useIntl } from "react-intl"; import { useIntl } from "react-intl";
import { import {
areFiltersApplied,
deleteFilterTab, deleteFilterTab,
getActiveFilters, getActiveFilters,
getFiltersCurrentTab,
getFilterTabs, getFilterTabs,
getFilterVariables, getFilterVariables,
saveFilterTab saveFilterTab
@ -91,12 +91,7 @@ const WarehouseList: React.FC<WarehouseListProps> = ({ params }) => {
const tabs = getFilterTabs(); const tabs = getFilterTabs();
const currentTab = const currentTab = getFiltersCurrentTab(params, tabs);
params.activeTab === undefined
? areFiltersApplied(params)
? tabs.length + 1
: 0
: parseInt(params.activeTab, 0);
const [, resetFilters, handleSearchChange] = createFilterHandlers({ const [, resetFilters, handleSearchChange] = createFilterHandlers({
createUrl: warehouseListUrl, createUrl: warehouseListUrl,

View file

@ -26,7 +26,10 @@ export const {
saveFilterTab saveFilterTab
} = createFilterTabUtils<WarehouseListUrlFilters>(WAREHOUSE_FILTERS_KEY); } = createFilterTabUtils<WarehouseListUrlFilters>(WAREHOUSE_FILTERS_KEY);
export const { areFiltersApplied, getActiveFilters } = createFilterUtils< export const {
WarehouseListUrlQueryParams, areFiltersApplied,
WarehouseListUrlFilters getActiveFilters,
>(WarehouseListUrlFiltersEnum); getFiltersCurrentTab
} = createFilterUtils<WarehouseListUrlQueryParams, WarehouseListUrlFilters>(
WarehouseListUrlFiltersEnum
);