Simplify code

This commit is contained in:
dominik-zeglen 2019-12-31 15:23:11 +01:00
parent 8bdf4deabb
commit d3bd6a6c22
5 changed files with 25 additions and 27 deletions

View file

@ -20,6 +20,7 @@ import createSortHandler from "@saleor/utils/handlers/sortHandler";
import { getSortParams } from "@saleor/utils/sort"; import { getSortParams } from "@saleor/utils/sort";
import createDialogActionHandlers from "@saleor/utils/handlers/dialogActionHandlers"; import createDialogActionHandlers from "@saleor/utils/handlers/dialogActionHandlers";
import { IFilter } from "@saleor/components/Filter"; import { IFilter } from "@saleor/components/Filter";
import { getFilterQueryParams } from "@saleor/utils/filters";
import OrderBulkCancelDialog from "../../components/OrderBulkCancelDialog"; import OrderBulkCancelDialog from "../../components/OrderBulkCancelDialog";
import OrderListPage from "../../components/OrderListPage/OrderListPage"; import OrderListPage from "../../components/OrderListPage/OrderListPage";
import { import {
@ -44,7 +45,7 @@ import {
getFilterVariables, getFilterVariables,
saveFilterTab, saveFilterTab,
OrderFilterKeys, OrderFilterKeys,
createFilterQueryParams getFilterQueryParam
} from "./filters"; } from "./filters";
import { getSortQueryVariables } from "./sort"; import { getSortQueryVariables } from "./sort";
@ -92,7 +93,7 @@ export const OrderList: React.FC<OrderListProps> = ({ params }) => {
navigate( navigate(
orderListUrl({ orderListUrl({
...params, ...params,
...createFilterQueryParams(filter), ...getFilterQueryParams(filter, getFilterQueryParam),
activeTab: undefined activeTab: undefined
}) })
); );

View file

@ -164,17 +164,6 @@ export function getFilterQueryParam(
}; };
} }
} }
export function createFilterQueryParams(
filter: IFilter<OrderFilterKeys>
): OrderListUrlFilters {
return filter.reduce(
(acc, filterField) => ({
...acc,
...getFilterQueryParam(filterField)
}),
{}
);
}
export const { export const {
deleteFilterTab, deleteFilterTab,

View file

@ -26,6 +26,7 @@ import { ListViews } from "@saleor/types";
import { getSortUrlVariables } from "@saleor/utils/sort"; import { getSortUrlVariables } from "@saleor/utils/sort";
import createDialogActionHandlers from "@saleor/utils/handlers/dialogActionHandlers"; import createDialogActionHandlers from "@saleor/utils/handlers/dialogActionHandlers";
import { IFilter } from "@saleor/components/Filter"; import { IFilter } from "@saleor/components/Filter";
import { getFilterQueryParams } from "@saleor/utils/filters";
import ProductListPage from "../../components/ProductListPage"; import ProductListPage from "../../components/ProductListPage";
import { import {
TypedProductBulkDeleteMutation, TypedProductBulkDeleteMutation,
@ -53,8 +54,8 @@ import {
getFilterVariables, getFilterVariables,
saveFilterTab, saveFilterTab,
ProductFilterKeys, ProductFilterKeys,
createFilterQueryParams, getFilterOpts,
getFilterOpts getFilterQueryParam
} from "./filters"; } from "./filters";
import { getSortQueryVariables } from "./sort"; import { getSortQueryVariables } from "./sort";
@ -107,7 +108,7 @@ export const ProductList: React.FC<ProductListProps> = ({ params }) => {
navigate( navigate(
productListUrl({ productListUrl({
...params, ...params,
...createFilterQueryParams(filter), ...getFilterQueryParams(filter, getFilterQueryParam),
activeTab: undefined activeTab: undefined
}) })
); );

View file

@ -176,17 +176,6 @@ export function getFilterQueryParam(
}; };
} }
} }
export function createFilterQueryParams(
filter: IFilter<ProductFilterKeys>
): ProductListUrlFilters {
return filter.reduce(
(acc, filterField) => ({
...acc,
...getFilterQueryParam(filterField)
}),
{}
);
}
export const { export const {
deleteFilterTab, deleteFilterTab,

View file

@ -1,3 +1,5 @@
import { IFilterElement, IFilter } from "@saleor/components/Filter";
function createFilterUtils< function createFilterUtils<
TQueryParams extends object, TQueryParams extends object,
TFilters extends object TFilters extends object
@ -25,4 +27,20 @@ export function dedupeFilter<T>(array: T[]): T[] {
return Array.from(new Set(array)); return Array.from(new Set(array));
} }
export function getFilterQueryParams<
TFilterKeys extends string,
TUrlFilters extends object
>(
filter: IFilter<TFilterKeys>,
getFilterQueryParam: (filter: IFilterElement<TFilterKeys>) => TUrlFilters
): TUrlFilters {
return filter.reduce(
(acc, filterField) => ({
...acc,
...getFilterQueryParam(filterField)
}),
{} as TUrlFilters
);
}
export default createFilterUtils; export default createFilterUtils;