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 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<OrderListProps> = ({ params }) => {
navigate(
orderListUrl({
...params,
...createFilterQueryParams(filter),
...getFilterQueryParams(filter, getFilterQueryParam),
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 {
deleteFilterTab,

View file

@ -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<ProductListProps> = ({ params }) => {
navigate(
productListUrl({
...params,
...createFilterQueryParams(filter),
...getFilterQueryParams(filter, getFilterQueryParam),
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 {
deleteFilterTab,

View file

@ -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<T>(array: T[]): T[] {
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;