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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,5 +1,6 @@
import { IFilter, IFilterElement } from "@saleor/components/Filter";
import { findValueInEnum } from "@saleor/misc";
import { ActiveTab } from "@saleor/types";
import isArray from "lodash/isArray";
function createFilterUtils<
@ -19,9 +20,21 @@ function createFilterUtils<
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 {
areFiltersApplied,
getActiveFilters
getActiveFilters,
getFiltersCurrentTab
};
}

View file

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

View file

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