Simplify code
This commit is contained in:
parent
8bdf4deabb
commit
d3bd6a6c22
5 changed files with 25 additions and 27 deletions
|
@ -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
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Reference in a new issue