Use generic handlers
This commit is contained in:
parent
a7304dabb0
commit
be649e32ea
10 changed files with 120 additions and 301 deletions
|
@ -23,9 +23,8 @@ import { ListViews } from "@saleor/types";
|
|||
import { getSortParams } from "@saleor/utils/sort";
|
||||
import createSortHandler from "@saleor/utils/handlers/sortHandler";
|
||||
import createDialogActionHandlers from "@saleor/utils/handlers/dialogActionHandlers";
|
||||
import { IFilter } from "@saleor/components/Filter";
|
||||
import { getFilterQueryParams } from "@saleor/utils/filters";
|
||||
import useShop from "@saleor/hooks/useShop";
|
||||
import createFilterHandlers from "@saleor/utils/handlers/filterHandlers";
|
||||
import CollectionListPage from "../../components/CollectionListPage/CollectionListPage";
|
||||
import {
|
||||
TypedCollectionBulkDelete,
|
||||
|
@ -48,7 +47,6 @@ import {
|
|||
getFilterTabs,
|
||||
getFilterVariables,
|
||||
saveFilterTab,
|
||||
CollectionFilterKeys,
|
||||
getFilterQueryParam,
|
||||
getFilterOpts
|
||||
} from "./filter";
|
||||
|
@ -94,37 +92,17 @@ export const CollectionList: React.FC<CollectionListProps> = ({ params }) => {
|
|||
: 0
|
||||
: parseInt(params.activeTab, 0);
|
||||
|
||||
const changeFilters = (filter: IFilter<CollectionFilterKeys>) => {
|
||||
reset();
|
||||
navigate(
|
||||
collectionListUrl({
|
||||
...params,
|
||||
...getFilterQueryParams(filter, getFilterQueryParam),
|
||||
activeTab: undefined
|
||||
})
|
||||
);
|
||||
};
|
||||
|
||||
const resetFilters = () => {
|
||||
reset();
|
||||
navigate(
|
||||
collectionListUrl({
|
||||
asc: params.asc,
|
||||
sort: params.sort
|
||||
})
|
||||
);
|
||||
};
|
||||
|
||||
const handleSearchChange = (query: string) => {
|
||||
reset();
|
||||
navigate(
|
||||
collectionListUrl({
|
||||
...params,
|
||||
activeTab: undefined,
|
||||
query
|
||||
})
|
||||
);
|
||||
};
|
||||
const [
|
||||
changeFilters,
|
||||
resetFilters,
|
||||
handleSearchChange
|
||||
] = createFilterHandlers({
|
||||
cleanupFn: reset,
|
||||
createUrl: collectionListUrl,
|
||||
getFilterQueryParam,
|
||||
navigate,
|
||||
params
|
||||
});
|
||||
|
||||
const [openModal, closeModal] = createDialogActionHandlers<
|
||||
CollectionListUrlDialog,
|
||||
|
|
|
@ -22,9 +22,8 @@ import { ListViews } from "@saleor/types";
|
|||
import { getSortParams } from "@saleor/utils/sort";
|
||||
import createSortHandler from "@saleor/utils/handlers/sortHandler";
|
||||
import createDialogActionHandlers from "@saleor/utils/handlers/dialogActionHandlers";
|
||||
import { IFilter } from "@saleor/components/Filter";
|
||||
import { getFilterQueryParams } from "@saleor/utils/filters";
|
||||
import useShop from "@saleor/hooks/useShop";
|
||||
import createFilterHandlers from "@saleor/utils/handlers/filterHandlers";
|
||||
import CustomerListPage from "../../components/CustomerListPage";
|
||||
import { TypedBulkRemoveCustomers } from "../../mutations";
|
||||
import { useCustomerListQuery } from "../../queries";
|
||||
|
@ -43,7 +42,6 @@ import {
|
|||
getFilterTabs,
|
||||
getFilterVariables,
|
||||
saveFilterTab,
|
||||
CustomerFilterKeys,
|
||||
getFilterQueryParam,
|
||||
getFilterOpts
|
||||
} from "./filter";
|
||||
|
@ -89,37 +87,17 @@ export const CustomerList: React.FC<CustomerListProps> = ({ params }) => {
|
|||
: 0
|
||||
: parseInt(params.activeTab, 0);
|
||||
|
||||
const changeFilters = (filter: IFilter<CustomerFilterKeys>) => {
|
||||
reset();
|
||||
navigate(
|
||||
customerListUrl({
|
||||
...params,
|
||||
...getFilterQueryParams(filter, getFilterQueryParam),
|
||||
activeTab: undefined
|
||||
})
|
||||
);
|
||||
};
|
||||
|
||||
const resetFilters = () => {
|
||||
reset();
|
||||
navigate(
|
||||
customerListUrl({
|
||||
asc: params.asc,
|
||||
sort: params.sort
|
||||
})
|
||||
);
|
||||
};
|
||||
|
||||
const handleSearchChange = (query: string) => {
|
||||
reset();
|
||||
navigate(
|
||||
customerListUrl({
|
||||
...params,
|
||||
activeTab: undefined,
|
||||
query
|
||||
})
|
||||
);
|
||||
};
|
||||
const [
|
||||
changeFilters,
|
||||
resetFilters,
|
||||
handleSearchChange
|
||||
] = createFilterHandlers({
|
||||
cleanupFn: reset,
|
||||
createUrl: customerListUrl,
|
||||
getFilterQueryParam,
|
||||
navigate,
|
||||
params
|
||||
});
|
||||
|
||||
const [openModal, closeModal] = createDialogActionHandlers<
|
||||
CustomerListUrlDialog,
|
||||
|
|
|
@ -24,8 +24,7 @@ import { ListViews } from "@saleor/types";
|
|||
import { getSortParams } from "@saleor/utils/sort";
|
||||
import createSortHandler from "@saleor/utils/handlers/sortHandler";
|
||||
import createDialogActionHandlers from "@saleor/utils/handlers/dialogActionHandlers";
|
||||
import { IFilter } from "@saleor/components/Filter";
|
||||
import { getFilterQueryParams } from "@saleor/utils/filters";
|
||||
import createFilterHandlers from "@saleor/utils/handlers/filterHandlers";
|
||||
import SaleListPage from "../../components/SaleListPage";
|
||||
import { TypedSaleBulkDelete } from "../../mutations";
|
||||
import { useSaleListQuery } from "../../queries";
|
||||
|
@ -44,7 +43,6 @@ import {
|
|||
getFilterTabs,
|
||||
getFilterVariables,
|
||||
saveFilterTab,
|
||||
SaleFilterKeys,
|
||||
getFilterQueryParam,
|
||||
getFilterOpts
|
||||
} from "./filter";
|
||||
|
@ -90,37 +88,17 @@ export const SaleList: React.FC<SaleListProps> = ({ params }) => {
|
|||
: 0
|
||||
: parseInt(params.activeTab, 0);
|
||||
|
||||
const changeFilters = (filter: IFilter<SaleFilterKeys>) => {
|
||||
reset();
|
||||
navigate(
|
||||
saleListUrl({
|
||||
...params,
|
||||
...getFilterQueryParams(filter, getFilterQueryParam),
|
||||
activeTab: undefined
|
||||
})
|
||||
);
|
||||
};
|
||||
|
||||
const resetFilters = () => {
|
||||
reset();
|
||||
navigate(
|
||||
saleListUrl({
|
||||
asc: params.asc,
|
||||
sort: params.sort
|
||||
})
|
||||
);
|
||||
};
|
||||
|
||||
const handleSearchChange = (query: string) => {
|
||||
reset();
|
||||
navigate(
|
||||
saleListUrl({
|
||||
...params,
|
||||
activeTab: undefined,
|
||||
query
|
||||
})
|
||||
);
|
||||
};
|
||||
const [
|
||||
changeFilters,
|
||||
resetFilters,
|
||||
handleSearchChange
|
||||
] = createFilterHandlers({
|
||||
cleanupFn: reset,
|
||||
createUrl: saleListUrl,
|
||||
getFilterQueryParam,
|
||||
navigate,
|
||||
params
|
||||
});
|
||||
|
||||
const [openModal, closeModal] = createDialogActionHandlers<
|
||||
SaleListUrlDialog,
|
||||
|
|
|
@ -26,6 +26,7 @@ import createSortHandler from "@saleor/utils/handlers/sortHandler";
|
|||
import createDialogActionHandlers from "@saleor/utils/handlers/dialogActionHandlers";
|
||||
import { getFilterQueryParams } from "@saleor/utils/filters";
|
||||
import { IFilter } from "@saleor/components/Filter";
|
||||
import createFilterHandlers from "@saleor/utils/handlers/filterHandlers";
|
||||
import VoucherListPage from "../../components/VoucherListPage";
|
||||
import { TypedVoucherBulkDelete } from "../../mutations";
|
||||
import { useVoucherListQuery } from "../../queries";
|
||||
|
@ -90,37 +91,17 @@ export const VoucherList: React.FC<VoucherListProps> = ({ params }) => {
|
|||
: 0
|
||||
: parseInt(params.activeTab, 0);
|
||||
|
||||
const changeFilters = (filter: IFilter<VoucherFilterKeys>) => {
|
||||
reset();
|
||||
navigate(
|
||||
voucherListUrl({
|
||||
...params,
|
||||
...getFilterQueryParams(filter, getFilterQueryParam),
|
||||
activeTab: undefined
|
||||
})
|
||||
);
|
||||
};
|
||||
|
||||
const resetFilters = () => {
|
||||
reset();
|
||||
navigate(
|
||||
voucherListUrl({
|
||||
asc: params.asc,
|
||||
sort: params.sort
|
||||
})
|
||||
);
|
||||
};
|
||||
|
||||
const handleSearchChange = (query: string) => {
|
||||
reset();
|
||||
navigate(
|
||||
voucherListUrl({
|
||||
...params,
|
||||
activeTab: undefined,
|
||||
query
|
||||
})
|
||||
);
|
||||
};
|
||||
const [
|
||||
changeFilters,
|
||||
resetFilters,
|
||||
handleSearchChange
|
||||
] = createFilterHandlers({
|
||||
cleanupFn: reset,
|
||||
createUrl: voucherListUrl,
|
||||
getFilterQueryParam,
|
||||
navigate,
|
||||
params
|
||||
});
|
||||
|
||||
const [openModal, closeModal] = createDialogActionHandlers<
|
||||
VoucherListUrlDialog,
|
||||
|
|
|
@ -21,9 +21,8 @@ import { ListViews } from "@saleor/types";
|
|||
import createSortHandler from "@saleor/utils/handlers/sortHandler";
|
||||
import { getSortParams } from "@saleor/utils/sort";
|
||||
import createDialogActionHandlers from "@saleor/utils/handlers/dialogActionHandlers";
|
||||
import { getFilterQueryParams } from "@saleor/utils/filters";
|
||||
import { IFilter } from "@saleor/components/Filter";
|
||||
import useShop from "@saleor/hooks/useShop";
|
||||
import createFilterHandlers from "@saleor/utils/handlers/filterHandlers";
|
||||
import OrderDraftListPage from "../../components/OrderDraftListPage";
|
||||
import {
|
||||
TypedOrderDraftBulkCancelMutation,
|
||||
|
@ -46,7 +45,6 @@ import {
|
|||
getFilterVariables,
|
||||
saveFilterTab,
|
||||
getFilterQueryParam,
|
||||
OrderDraftFilterKeys,
|
||||
getFilterOpts
|
||||
} from "./filter";
|
||||
import { getSortQueryVariables } from "./sort";
|
||||
|
@ -90,37 +88,17 @@ export const OrderDraftList: React.FC<OrderDraftListProps> = ({ params }) => {
|
|||
: 0
|
||||
: parseInt(params.activeTab, 0);
|
||||
|
||||
const changeFilters = (filter: IFilter<OrderDraftFilterKeys>) => {
|
||||
reset();
|
||||
navigate(
|
||||
orderDraftListUrl({
|
||||
...params,
|
||||
...getFilterQueryParams(filter, getFilterQueryParam),
|
||||
activeTab: undefined
|
||||
})
|
||||
);
|
||||
};
|
||||
|
||||
const resetFilters = () => {
|
||||
reset();
|
||||
navigate(
|
||||
orderDraftListUrl({
|
||||
asc: params.asc,
|
||||
sort: params.sort
|
||||
})
|
||||
);
|
||||
};
|
||||
|
||||
const handleSearchChange = (query: string) => {
|
||||
reset();
|
||||
navigate(
|
||||
orderDraftListUrl({
|
||||
...params,
|
||||
activeTab: undefined,
|
||||
query
|
||||
})
|
||||
);
|
||||
};
|
||||
const [
|
||||
changeFilters,
|
||||
resetFilters,
|
||||
handleSearchChange
|
||||
] = createFilterHandlers({
|
||||
cleanupFn: reset,
|
||||
createUrl: orderDraftListUrl,
|
||||
getFilterQueryParam,
|
||||
navigate,
|
||||
params
|
||||
});
|
||||
|
||||
const [openModal, closeModal] = createDialogActionHandlers<
|
||||
OrderDraftListUrlDialog,
|
||||
|
|
|
@ -19,8 +19,7 @@ import { ListViews } from "@saleor/types";
|
|||
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 createFilterHandlers from "@saleor/utils/handlers/filterHandlers";
|
||||
import OrderBulkCancelDialog from "../../components/OrderBulkCancelDialog";
|
||||
import OrderListPage from "../../components/OrderListPage/OrderListPage";
|
||||
import {
|
||||
|
@ -44,7 +43,6 @@ import {
|
|||
getFilterOpts,
|
||||
getFilterVariables,
|
||||
saveFilterTab,
|
||||
OrderFilterKeys,
|
||||
getFilterQueryParam
|
||||
} from "./filters";
|
||||
import { getSortQueryVariables } from "./sort";
|
||||
|
@ -88,37 +86,17 @@ export const OrderList: React.FC<OrderListProps> = ({ params }) => {
|
|||
: 0
|
||||
: parseInt(params.activeTab, 0);
|
||||
|
||||
const changeFilters = (filter: IFilter<OrderFilterKeys>) => {
|
||||
reset();
|
||||
navigate(
|
||||
orderListUrl({
|
||||
...params,
|
||||
...getFilterQueryParams(filter, getFilterQueryParam),
|
||||
activeTab: undefined
|
||||
})
|
||||
);
|
||||
};
|
||||
|
||||
const resetFilters = () => {
|
||||
reset();
|
||||
navigate(
|
||||
orderListUrl({
|
||||
asc: params.asc,
|
||||
sort: params.sort
|
||||
})
|
||||
);
|
||||
};
|
||||
|
||||
const handleSearchChange = (query: string) => {
|
||||
reset();
|
||||
navigate(
|
||||
orderListUrl({
|
||||
...params,
|
||||
activeTab: undefined,
|
||||
query
|
||||
})
|
||||
);
|
||||
};
|
||||
const [
|
||||
changeFilters,
|
||||
resetFilters,
|
||||
handleSearchChange
|
||||
] = createFilterHandlers({
|
||||
cleanupFn: reset,
|
||||
createUrl: orderListUrl,
|
||||
getFilterQueryParam,
|
||||
navigate,
|
||||
params
|
||||
});
|
||||
|
||||
const [openModal, closeModal] = createDialogActionHandlers<
|
||||
OrderListUrlDialog,
|
||||
|
|
|
@ -21,9 +21,8 @@ import { ListViews } from "@saleor/types";
|
|||
import { getSortParams } from "@saleor/utils/sort";
|
||||
import createSortHandler from "@saleor/utils/handlers/sortHandler";
|
||||
import createDialogActionHandlers from "@saleor/utils/handlers/dialogActionHandlers";
|
||||
import { IFilter } from "@saleor/components/Filter";
|
||||
import { getFilterQueryParams } from "@saleor/utils/filters";
|
||||
import useShop from "@saleor/hooks/useShop";
|
||||
import createFilterHandlers from "@saleor/utils/handlers/filterHandlers";
|
||||
import { configurationMenuUrl } from "../../../configuration";
|
||||
import { maybe } from "../../../misc";
|
||||
import ProductTypeListPage from "../../components/ProductTypeListPage";
|
||||
|
@ -44,7 +43,6 @@ import {
|
|||
getFilterTabs,
|
||||
getFilterVariables,
|
||||
saveFilterTab,
|
||||
ProductTypeFilterKeys,
|
||||
getFilterQueryParam,
|
||||
getFilterOpts
|
||||
} from "./filter";
|
||||
|
@ -88,37 +86,17 @@ export const ProductTypeList: React.FC<ProductTypeListProps> = ({ params }) => {
|
|||
: 0
|
||||
: parseInt(params.activeTab, 0);
|
||||
|
||||
const changeFilters = (filter: IFilter<ProductTypeFilterKeys>) => {
|
||||
reset();
|
||||
navigate(
|
||||
productTypeListUrl({
|
||||
...params,
|
||||
...getFilterQueryParams(filter, getFilterQueryParam),
|
||||
activeTab: undefined
|
||||
})
|
||||
);
|
||||
};
|
||||
|
||||
const resetFilters = () => {
|
||||
reset();
|
||||
navigate(
|
||||
productTypeListUrl({
|
||||
asc: params.asc,
|
||||
sort: params.sort
|
||||
})
|
||||
);
|
||||
};
|
||||
|
||||
const handleSearchChange = (query: string) => {
|
||||
reset();
|
||||
navigate(
|
||||
productTypeListUrl({
|
||||
...params,
|
||||
activeTab: undefined,
|
||||
query
|
||||
})
|
||||
);
|
||||
};
|
||||
const [
|
||||
changeFilters,
|
||||
resetFilters,
|
||||
handleSearchChange
|
||||
] = createFilterHandlers({
|
||||
cleanupFn: reset,
|
||||
createUrl: productTypeListUrl,
|
||||
getFilterQueryParam,
|
||||
navigate,
|
||||
params
|
||||
});
|
||||
|
||||
const [openModal, closeModal] = createDialogActionHandlers<
|
||||
ProductTypeListUrlDialog,
|
||||
|
|
|
@ -25,8 +25,7 @@ import { ProductListVariables } from "@saleor/products/types/ProductList";
|
|||
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 createFilterHandlers from "@saleor/utils/handlers/filterHandlers";
|
||||
import ProductListPage from "../../components/ProductListPage";
|
||||
import {
|
||||
TypedProductBulkDeleteMutation,
|
||||
|
@ -53,7 +52,6 @@ import {
|
|||
getFilterTabs,
|
||||
getFilterVariables,
|
||||
saveFilterTab,
|
||||
ProductFilterKeys,
|
||||
getFilterOpts,
|
||||
getFilterQueryParam
|
||||
} from "./filters";
|
||||
|
@ -103,37 +101,17 @@ export const ProductList: React.FC<ProductListProps> = ({ params }) => {
|
|||
ProductListUrlQueryParams
|
||||
>(navigate, productListUrl, params);
|
||||
|
||||
const changeFilters = (filter: IFilter<ProductFilterKeys>) => {
|
||||
reset();
|
||||
navigate(
|
||||
productListUrl({
|
||||
...params,
|
||||
...getFilterQueryParams(filter, getFilterQueryParam),
|
||||
activeTab: undefined
|
||||
})
|
||||
);
|
||||
};
|
||||
|
||||
const resetFilters = () => {
|
||||
reset();
|
||||
navigate(
|
||||
productListUrl({
|
||||
asc: params.asc,
|
||||
sort: params.sort
|
||||
})
|
||||
);
|
||||
};
|
||||
|
||||
const handleSearchChange = (query: string) => {
|
||||
reset();
|
||||
navigate(
|
||||
productListUrl({
|
||||
...params,
|
||||
activeTab: undefined,
|
||||
query
|
||||
})
|
||||
);
|
||||
};
|
||||
const [
|
||||
changeFilters,
|
||||
resetFilters,
|
||||
handleSearchChange
|
||||
] = createFilterHandlers({
|
||||
cleanupFn: reset,
|
||||
createUrl: productListUrl,
|
||||
getFilterQueryParam,
|
||||
navigate,
|
||||
params
|
||||
});
|
||||
|
||||
const handleTabChange = (tab: number) => {
|
||||
reset();
|
||||
|
|
|
@ -23,8 +23,7 @@ import { ListViews } from "@saleor/types";
|
|||
import { getSortParams } from "@saleor/utils/sort";
|
||||
import createSortHandler from "@saleor/utils/handlers/sortHandler";
|
||||
import createDialogActionHandlers from "@saleor/utils/handlers/dialogActionHandlers";
|
||||
import { IFilter } from "@saleor/components/Filter";
|
||||
import { getFilterQueryParams } from "@saleor/utils/filters";
|
||||
import createFilterHandlers from "@saleor/utils/handlers/filterHandlers";
|
||||
import StaffAddMemberDialog, {
|
||||
FormData as AddStaffMemberForm
|
||||
} from "../../components/StaffAddMemberDialog";
|
||||
|
@ -45,7 +44,6 @@ import {
|
|||
getFilterTabs,
|
||||
getFilterVariables,
|
||||
saveFilterTab,
|
||||
StaffFilterKeys,
|
||||
getFilterQueryParam,
|
||||
getFilterOpts
|
||||
} from "./filter";
|
||||
|
@ -89,31 +87,16 @@ export const StaffList: React.FC<StaffListProps> = ({ params }) => {
|
|||
: 0
|
||||
: parseInt(params.activeTab, 0);
|
||||
|
||||
const changeFilters = (filter: IFilter<StaffFilterKeys>) =>
|
||||
navigate(
|
||||
staffListUrl({
|
||||
...params,
|
||||
...getFilterQueryParams(filter, getFilterQueryParam),
|
||||
activeTab: undefined
|
||||
})
|
||||
);
|
||||
|
||||
const resetFilters = () =>
|
||||
navigate(
|
||||
staffListUrl({
|
||||
asc: params.asc,
|
||||
sort: params.sort
|
||||
})
|
||||
);
|
||||
|
||||
const handleSearchChange = (query: string) =>
|
||||
navigate(
|
||||
staffListUrl({
|
||||
...params,
|
||||
activeTab: undefined,
|
||||
query
|
||||
})
|
||||
);
|
||||
const [
|
||||
changeFilters,
|
||||
resetFilters,
|
||||
handleSearchChange
|
||||
] = createFilterHandlers({
|
||||
createUrl: staffListUrl,
|
||||
getFilterQueryParam,
|
||||
navigate,
|
||||
params
|
||||
});
|
||||
|
||||
const [openModal, closeModal] = createDialogActionHandlers<
|
||||
StaffListUrlDialog,
|
||||
|
|
|
@ -23,12 +23,15 @@ function createFilterHandlers<
|
|||
navigate: UseNavigatorResult;
|
||||
createUrl: CreateUrl;
|
||||
params: RequiredParams;
|
||||
cleanupFn: () => void;
|
||||
cleanupFn?: () => void;
|
||||
}): CreateFilterHandlers<TFilterKeys> {
|
||||
const { getFilterQueryParam, navigate, createUrl, params, cleanupFn } = opts;
|
||||
|
||||
const changeFilters = (filter: IFilter<TFilterKeys>) => {
|
||||
cleanupFn();
|
||||
if (!!cleanupFn) {
|
||||
cleanupFn();
|
||||
}
|
||||
|
||||
navigate(
|
||||
createUrl({
|
||||
...params,
|
||||
|
@ -39,7 +42,10 @@ function createFilterHandlers<
|
|||
};
|
||||
|
||||
const resetFilters = () => {
|
||||
cleanupFn();
|
||||
if (!!cleanupFn) {
|
||||
cleanupFn();
|
||||
}
|
||||
|
||||
navigate(
|
||||
createUrl({
|
||||
asc: params.asc,
|
||||
|
@ -49,7 +55,10 @@ function createFilterHandlers<
|
|||
};
|
||||
|
||||
const handleSearchChange = (query: string) => {
|
||||
cleanupFn();
|
||||
if (!!cleanupFn) {
|
||||
cleanupFn();
|
||||
}
|
||||
|
||||
navigate(
|
||||
createUrl({
|
||||
...params,
|
||||
|
|
Loading…
Reference in a new issue