diff --git a/src/orders/views/OrderList/OrderList.tsx b/src/orders/views/OrderList/OrderList.tsx index 8b32ee357..38058b842 100644 --- a/src/orders/views/OrderList/OrderList.tsx +++ b/src/orders/views/OrderList/OrderList.tsx @@ -20,6 +20,7 @@ import createSortHandler from "@saleor/utils/handlers/sortHandler"; import { getSortParams } from "@saleor/utils/sort"; import createDialogActionHandlers from "@saleor/utils/handlers/dialogActionHandlers"; import { IFilter } from "@saleor/components/Filter"; +import { getFilterQueryParams } from "@saleor/utils/filters"; import OrderBulkCancelDialog from "../../components/OrderBulkCancelDialog"; import OrderListPage from "../../components/OrderListPage/OrderListPage"; import { @@ -44,7 +45,7 @@ import { getFilterVariables, saveFilterTab, OrderFilterKeys, - createFilterQueryParams + getFilterQueryParam } from "./filters"; import { getSortQueryVariables } from "./sort"; @@ -92,7 +93,7 @@ export const OrderList: React.FC = ({ params }) => { navigate( orderListUrl({ ...params, - ...createFilterQueryParams(filter), + ...getFilterQueryParams(filter, getFilterQueryParam), activeTab: undefined }) ); diff --git a/src/orders/views/OrderList/filters.ts b/src/orders/views/OrderList/filters.ts index 97482955c..7e8e0629a 100644 --- a/src/orders/views/OrderList/filters.ts +++ b/src/orders/views/OrderList/filters.ts @@ -164,17 +164,6 @@ export function getFilterQueryParam( }; } } -export function createFilterQueryParams( - filter: IFilter -): OrderListUrlFilters { - return filter.reduce( - (acc, filterField) => ({ - ...acc, - ...getFilterQueryParam(filterField) - }), - {} - ); -} export const { deleteFilterTab, diff --git a/src/products/views/ProductList/ProductList.tsx b/src/products/views/ProductList/ProductList.tsx index 3cf59a9c5..e9386c362 100644 --- a/src/products/views/ProductList/ProductList.tsx +++ b/src/products/views/ProductList/ProductList.tsx @@ -26,6 +26,7 @@ import { ListViews } from "@saleor/types"; import { getSortUrlVariables } from "@saleor/utils/sort"; import createDialogActionHandlers from "@saleor/utils/handlers/dialogActionHandlers"; import { IFilter } from "@saleor/components/Filter"; +import { getFilterQueryParams } from "@saleor/utils/filters"; import ProductListPage from "../../components/ProductListPage"; import { TypedProductBulkDeleteMutation, @@ -53,8 +54,8 @@ import { getFilterVariables, saveFilterTab, ProductFilterKeys, - createFilterQueryParams, - getFilterOpts + getFilterOpts, + getFilterQueryParam } from "./filters"; import { getSortQueryVariables } from "./sort"; @@ -107,7 +108,7 @@ export const ProductList: React.FC = ({ params }) => { navigate( productListUrl({ ...params, - ...createFilterQueryParams(filter), + ...getFilterQueryParams(filter, getFilterQueryParam), activeTab: undefined }) ); diff --git a/src/products/views/ProductList/filters.ts b/src/products/views/ProductList/filters.ts index 4f9c486a5..e3fd579ed 100644 --- a/src/products/views/ProductList/filters.ts +++ b/src/products/views/ProductList/filters.ts @@ -176,17 +176,6 @@ export function getFilterQueryParam( }; } } -export function createFilterQueryParams( - filter: IFilter -): ProductListUrlFilters { - return filter.reduce( - (acc, filterField) => ({ - ...acc, - ...getFilterQueryParam(filterField) - }), - {} - ); -} export const { deleteFilterTab, diff --git a/src/utils/filters/filters.ts b/src/utils/filters/filters.ts index 09601718b..63456e042 100644 --- a/src/utils/filters/filters.ts +++ b/src/utils/filters/filters.ts @@ -1,3 +1,5 @@ +import { IFilterElement, IFilter } from "@saleor/components/Filter"; + function createFilterUtils< TQueryParams extends object, TFilters extends object @@ -25,4 +27,20 @@ export function dedupeFilter(array: T[]): T[] { return Array.from(new Set(array)); } +export function getFilterQueryParams< + TFilterKeys extends string, + TUrlFilters extends object +>( + filter: IFilter, + getFilterQueryParam: (filter: IFilterElement) => TUrlFilters +): TUrlFilters { + return filter.reduce( + (acc, filterField) => ({ + ...acc, + ...getFilterQueryParam(filterField) + }), + {} as TUrlFilters + ); +} + export default createFilterUtils;