diff --git a/src/categories/views/CategoryList/CategoryList.tsx b/src/categories/views/CategoryList/CategoryList.tsx index 410311242..ecacda2cc 100644 --- a/src/categories/views/CategoryList/CategoryList.tsx +++ b/src/categories/views/CategoryList/CategoryList.tsx @@ -5,7 +5,6 @@ import DeleteFilterTabDialog from "@saleor/components/DeleteFilterTabDialog"; import SaveFilterTabDialog, { SaveFilterTabDialogFormData } from "@saleor/components/SaveFilterTabDialog"; -import { DEFAULT_INITIAL_PAGINATION_DATA } from "@saleor/config"; import useBulkActions from "@saleor/hooks/useBulkActions"; import useListSettings from "@saleor/hooks/useListSettings"; import useNavigator from "@saleor/hooks/useNavigator"; @@ -59,13 +58,7 @@ export const CategoryList: React.FC = ({ params }) => { ListViews.CATEGORY_LIST ); - usePaginationReset( - categoryListUrl({ - ...params, - ...DEFAULT_INITIAL_PAGINATION_DATA - }), - settings.rowNumber - ); + usePaginationReset(categoryListUrl, params, settings.rowNumber); const intl = useIntl(); diff --git a/src/collections/views/CollectionList/CollectionList.tsx b/src/collections/views/CollectionList/CollectionList.tsx index 411adea37..a08d8b197 100644 --- a/src/collections/views/CollectionList/CollectionList.tsx +++ b/src/collections/views/CollectionList/CollectionList.tsx @@ -6,7 +6,6 @@ import DeleteFilterTabDialog from "@saleor/components/DeleteFilterTabDialog"; import SaveFilterTabDialog, { SaveFilterTabDialogFormData } from "@saleor/components/SaveFilterTabDialog"; -import { DEFAULT_INITIAL_PAGINATION_DATA } from "@saleor/config"; import useBulkActions from "@saleor/hooks/useBulkActions"; import useListSettings from "@saleor/hooks/useListSettings"; import useNavigator from "@saleor/hooks/useNavigator"; @@ -65,13 +64,7 @@ export const CollectionList: React.FC = ({ params }) => { ListViews.COLLECTION_LIST ); - usePaginationReset( - collectionListUrl({ - ...params, - ...DEFAULT_INITIAL_PAGINATION_DATA - }), - settings.rowNumber - ); + usePaginationReset(collectionListUrl, params, settings.rowNumber); const [ changeFilters, diff --git a/src/customers/views/CustomerList/CustomerList.tsx b/src/customers/views/CustomerList/CustomerList.tsx index 7eb90db70..b08fce19d 100644 --- a/src/customers/views/CustomerList/CustomerList.tsx +++ b/src/customers/views/CustomerList/CustomerList.tsx @@ -5,7 +5,6 @@ import DeleteFilterTabDialog from "@saleor/components/DeleteFilterTabDialog"; import SaveFilterTabDialog, { SaveFilterTabDialogFormData } from "@saleor/components/SaveFilterTabDialog"; -import { DEFAULT_INITIAL_PAGINATION_DATA } from "@saleor/config"; import useBulkActions from "@saleor/hooks/useBulkActions"; import useListSettings from "@saleor/hooks/useListSettings"; import useNavigator from "@saleor/hooks/useNavigator"; @@ -63,13 +62,7 @@ export const CustomerList: React.FC = ({ params }) => { ListViews.CUSTOMER_LIST ); - usePaginationReset( - customerListUrl({ - ...params, - ...DEFAULT_INITIAL_PAGINATION_DATA - }), - settings.rowNumber - ); + usePaginationReset(customerListUrl, params, settings.rowNumber); const intl = useIntl(); diff --git a/src/discounts/views/SaleList/SaleList.tsx b/src/discounts/views/SaleList/SaleList.tsx index 5c9d7aa7a..d620c4ec1 100644 --- a/src/discounts/views/SaleList/SaleList.tsx +++ b/src/discounts/views/SaleList/SaleList.tsx @@ -7,7 +7,6 @@ import SaveFilterTabDialog, { SaveFilterTabDialogFormData } from "@saleor/components/SaveFilterTabDialog"; import { WindowTitle } from "@saleor/components/WindowTitle"; -import { DEFAULT_INITIAL_PAGINATION_DATA } from "@saleor/config"; import useBulkActions from "@saleor/hooks/useBulkActions"; import useListSettings from "@saleor/hooks/useListSettings"; import useNavigator from "@saleor/hooks/useNavigator"; @@ -65,13 +64,7 @@ export const SaleList: React.FC = ({ params }) => { ListViews.SALES_LIST ); - usePaginationReset( - saleListUrl({ - ...params, - ...DEFAULT_INITIAL_PAGINATION_DATA - }), - settings.rowNumber - ); + usePaginationReset(saleListUrl, params, settings.rowNumber); const intl = useIntl(); const { availableChannels } = useAppChannel(false); diff --git a/src/discounts/views/VoucherList/VoucherList.tsx b/src/discounts/views/VoucherList/VoucherList.tsx index 80c538556..4619c4f5f 100644 --- a/src/discounts/views/VoucherList/VoucherList.tsx +++ b/src/discounts/views/VoucherList/VoucherList.tsx @@ -7,7 +7,6 @@ import SaveFilterTabDialog, { SaveFilterTabDialogFormData } from "@saleor/components/SaveFilterTabDialog"; import { WindowTitle } from "@saleor/components/WindowTitle"; -import { DEFAULT_INITIAL_PAGINATION_DATA } from "@saleor/config"; import useBulkActions from "@saleor/hooks/useBulkActions"; import useListSettings from "@saleor/hooks/useListSettings"; import useNavigator from "@saleor/hooks/useNavigator"; @@ -65,13 +64,7 @@ export const VoucherList: React.FC = ({ params }) => { ListViews.VOUCHER_LIST ); - usePaginationReset( - voucherListUrl({ - ...params, - ...DEFAULT_INITIAL_PAGINATION_DATA - }), - settings.rowNumber - ); + usePaginationReset(voucherListUrl, params, settings.rowNumber); const intl = useIntl(); diff --git a/src/hooks/usePaginationReset.ts b/src/hooks/usePaginationReset.ts index 97c5d4533..1a4d0d6d3 100644 --- a/src/hooks/usePaginationReset.ts +++ b/src/hooks/usePaginationReset.ts @@ -1,9 +1,36 @@ +import { DEFAULT_INITIAL_PAGINATION_DATA } from "@saleor/config"; +import { Pagination } from "@saleor/types"; import { useEffect } from "react"; import useNavigator from "./useNavigator"; -export const usePaginationReset = (url: string, rowNumber: number) => { +export function usePaginationReset( + urlFunc: (params: T) => string, + params: T, + rowNumber: number +) { const navigate = useNavigator(); - useEffect(() => navigate(url, { replace: true }), [rowNumber]); -}; + useEffect( + () => + navigate( + urlFunc({ + ...params, + ...DEFAULT_INITIAL_PAGINATION_DATA + }), + { replace: true } + ), + [rowNumber] + ); + + useEffect( + () => + navigate( + urlFunc({ + ...params + }), + { replace: true } + ), + [params.before, params.after] + ); +} diff --git a/src/navigation/views/MenuList/MenuList.tsx b/src/navigation/views/MenuList/MenuList.tsx index 84b21c35d..a6086bd68 100644 --- a/src/navigation/views/MenuList/MenuList.tsx +++ b/src/navigation/views/MenuList/MenuList.tsx @@ -1,6 +1,5 @@ import { Button, DialogContentText } from "@material-ui/core"; import ActionDialog from "@saleor/components/ActionDialog"; -import { DEFAULT_INITIAL_PAGINATION_DATA } from "@saleor/config"; import { configurationMenuUrl } from "@saleor/configuration"; import useBulkActions from "@saleor/hooks/useBulkActions"; import useListSettings from "@saleor/hooks/useListSettings"; @@ -48,13 +47,7 @@ const MenuList: React.FC = ({ params }) => { ListViews.NAVIGATION_LIST ); - usePaginationReset( - menuListUrl({ - ...params, - ...DEFAULT_INITIAL_PAGINATION_DATA - }), - settings.rowNumber - ); + usePaginationReset(menuListUrl, params, settings.rowNumber); const intl = useIntl(); diff --git a/src/orders/views/OrderDraftList/OrderDraftList.tsx b/src/orders/views/OrderDraftList/OrderDraftList.tsx index e8fc72231..58e354812 100644 --- a/src/orders/views/OrderDraftList/OrderDraftList.tsx +++ b/src/orders/views/OrderDraftList/OrderDraftList.tsx @@ -8,7 +8,6 @@ import SaveFilterTabDialog, { SaveFilterTabDialogFormData } from "@saleor/components/SaveFilterTabDialog"; import { useShopLimitsQuery } from "@saleor/components/Shop/query"; -import { DEFAULT_INITIAL_PAGINATION_DATA } from "@saleor/config"; import useBulkActions from "@saleor/hooks/useBulkActions"; import useListSettings from "@saleor/hooks/useListSettings"; import useNavigator from "@saleor/hooks/useNavigator"; @@ -68,13 +67,7 @@ export const OrderDraftList: React.FC = ({ params }) => { ListViews.DRAFT_LIST ); - usePaginationReset( - orderDraftListUrl({ - ...params, - ...DEFAULT_INITIAL_PAGINATION_DATA - }), - settings.rowNumber - ); + usePaginationReset(orderDraftListUrl, params, settings.rowNumber); const intl = useIntl(); diff --git a/src/orders/views/OrderList/OrderList.tsx b/src/orders/views/OrderList/OrderList.tsx index 6e862501a..764f15a66 100644 --- a/src/orders/views/OrderList/OrderList.tsx +++ b/src/orders/views/OrderList/OrderList.tsx @@ -5,7 +5,6 @@ import SaveFilterTabDialog, { SaveFilterTabDialogFormData } from "@saleor/components/SaveFilterTabDialog"; import { useShopLimitsQuery } from "@saleor/components/Shop/query"; -import { DEFAULT_INITIAL_PAGINATION_DATA } from "@saleor/config"; import useListSettings from "@saleor/hooks/useListSettings"; import useNavigator from "@saleor/hooks/useNavigator"; import useNotifier from "@saleor/hooks/useNotifier"; @@ -58,13 +57,7 @@ export const OrderList: React.FC = ({ params }) => { ListViews.ORDER_LIST ); - usePaginationReset( - orderListUrl({ - ...params, - ...DEFAULT_INITIAL_PAGINATION_DATA - }), - settings.rowNumber - ); + usePaginationReset(orderListUrl, params, settings.rowNumber); const intl = useIntl(); diff --git a/src/pageTypes/views/PageTypeList/PageTypeList.tsx b/src/pageTypes/views/PageTypeList/PageTypeList.tsx index e393fda41..0a7b18827 100644 --- a/src/pageTypes/views/PageTypeList/PageTypeList.tsx +++ b/src/pageTypes/views/PageTypeList/PageTypeList.tsx @@ -5,7 +5,6 @@ import SaveFilterTabDialog, { SaveFilterTabDialogFormData } from "@saleor/components/SaveFilterTabDialog"; import TypeDeleteWarningDialog from "@saleor/components/TypeDeleteWarningDialog"; -import { DEFAULT_INITIAL_PAGINATION_DATA } from "@saleor/config"; import useBulkActions from "@saleor/hooks/useBulkActions"; import useListSettings from "@saleor/hooks/useListSettings"; import useNavigator from "@saleor/hooks/useNavigator"; @@ -65,13 +64,7 @@ export const PageTypeList: React.FC = ({ params }) => { const intl = useIntl(); const { settings } = useListSettings(ListViews.PAGES_LIST); - usePaginationReset( - pageTypeListUrl({ - ...params, - ...DEFAULT_INITIAL_PAGINATION_DATA - }), - settings.rowNumber - ); + usePaginationReset(pageTypeListUrl, params, settings.rowNumber); const paginationState = createPaginationState(settings.rowNumber, params); const queryVariables = React.useMemo( diff --git a/src/pages/views/PageList/PageList.tsx b/src/pages/views/PageList/PageList.tsx index b3f238022..6bb5831c7 100644 --- a/src/pages/views/PageList/PageList.tsx +++ b/src/pages/views/PageList/PageList.tsx @@ -1,7 +1,6 @@ import { Button, DialogContentText, IconButton } from "@material-ui/core"; import DeleteIcon from "@material-ui/icons/Delete"; import ActionDialog from "@saleor/components/ActionDialog"; -import { DEFAULT_INITIAL_PAGINATION_DATA } from "@saleor/config"; import { configurationMenuUrl } from "@saleor/configuration"; import useBulkActions from "@saleor/hooks/useBulkActions"; import useListSettings from "@saleor/hooks/useListSettings"; @@ -49,13 +48,7 @@ export const PageList: React.FC = ({ params }) => { ListViews.PAGES_LIST ); - usePaginationReset( - pageListUrl({ - ...params, - ...DEFAULT_INITIAL_PAGINATION_DATA - }), - settings.rowNumber - ); + usePaginationReset(pageListUrl, params, settings.rowNumber); const intl = useIntl(); diff --git a/src/permissionGroups/views/PermissionGroupList/PermissionGroupList.tsx b/src/permissionGroups/views/PermissionGroupList/PermissionGroupList.tsx index 38253143d..8258f7e71 100644 --- a/src/permissionGroups/views/PermissionGroupList/PermissionGroupList.tsx +++ b/src/permissionGroups/views/PermissionGroupList/PermissionGroupList.tsx @@ -1,4 +1,3 @@ -import { DEFAULT_INITIAL_PAGINATION_DATA } from "@saleor/config"; import { configurationMenuUrl } from "@saleor/configuration"; import { PermissionGroupErrorFragment } from "@saleor/fragments/types/PermissionGroupErrorFragment"; import useListSettings from "@saleor/hooks/useListSettings"; @@ -46,13 +45,7 @@ export const PermissionGroupList: React.FC = ({ ListViews.STAFF_MEMBERS_LIST ); - usePaginationReset( - permissionGroupListUrl({ - ...params, - ...DEFAULT_INITIAL_PAGINATION_DATA - }), - settings.rowNumber - ); + usePaginationReset(permissionGroupListUrl, params, settings.rowNumber); const paginationState = createPaginationState(settings.rowNumber, params); const queryVariables = React.useMemo( diff --git a/src/plugins/views/PluginList/PluginList.tsx b/src/plugins/views/PluginList/PluginList.tsx index 2f6bf7f0f..300c3641a 100644 --- a/src/plugins/views/PluginList/PluginList.tsx +++ b/src/plugins/views/PluginList/PluginList.tsx @@ -2,7 +2,6 @@ import DeleteFilterTabDialog from "@saleor/components/DeleteFilterTabDialog"; import SaveFilterTabDialog, { SaveFilterTabDialogFormData } from "@saleor/components/SaveFilterTabDialog"; -import { DEFAULT_INITIAL_PAGINATION_DATA } from "@saleor/config"; import { configurationMenuUrl } from "@saleor/configuration"; import { useChannelsSearchWithLoadMore } from "@saleor/hooks/useChannelsSearchWithLoadMore"; import useListSettings from "@saleor/hooks/useListSettings"; @@ -51,13 +50,7 @@ export const PluginsList: React.FC = ({ params }) => { ListViews.PLUGINS_LIST ); - usePaginationReset( - pluginListUrl({ - ...params, - ...DEFAULT_INITIAL_PAGINATION_DATA - }), - settings.rowNumber - ); + usePaginationReset(pluginListUrl, params, settings.rowNumber); const paginationState = createPaginationState(settings.rowNumber, params); const queryVariables = React.useMemo( diff --git a/src/productTypes/views/ProductTypeList/ProductTypeList.tsx b/src/productTypes/views/ProductTypeList/ProductTypeList.tsx index e4cf6bf6f..448d5551c 100644 --- a/src/productTypes/views/ProductTypeList/ProductTypeList.tsx +++ b/src/productTypes/views/ProductTypeList/ProductTypeList.tsx @@ -4,7 +4,6 @@ import DeleteFilterTabDialog from "@saleor/components/DeleteFilterTabDialog"; import SaveFilterTabDialog, { SaveFilterTabDialogFormData } from "@saleor/components/SaveFilterTabDialog"; -import { DEFAULT_INITIAL_PAGINATION_DATA } from "@saleor/config"; import useBulkActions from "@saleor/hooks/useBulkActions"; import useListSettings from "@saleor/hooks/useListSettings"; import useNavigator from "@saleor/hooks/useNavigator"; @@ -69,13 +68,7 @@ export const ProductTypeList: React.FC = ({ params }) => { const { settings } = useListSettings(ListViews.PRODUCT_LIST); const intl = useIntl(); - usePaginationReset( - productTypeListUrl({ - ...params, - ...DEFAULT_INITIAL_PAGINATION_DATA - }), - settings.rowNumber - ); + usePaginationReset(productTypeListUrl, params, settings.rowNumber); const paginationState = createPaginationState(settings.rowNumber, params); const queryVariables = React.useMemo( diff --git a/src/products/views/ProductList/ProductList.tsx b/src/products/views/ProductList/ProductList.tsx index d1af04c76..459cfd27f 100644 --- a/src/products/views/ProductList/ProductList.tsx +++ b/src/products/views/ProductList/ProductList.tsx @@ -96,13 +96,7 @@ export const ProductList: React.FC = ({ params }) => { ListViews.PRODUCT_LIST ); - usePaginationReset( - productListUrl({ - ...params, - ...DEFAULT_INITIAL_PAGINATION_DATA - }), - settings.rowNumber - ); + usePaginationReset(productListUrl, params, settings.rowNumber); const intl = useIntl(); const { diff --git a/src/shipping/views/ShippingZonesList.tsx b/src/shipping/views/ShippingZonesList.tsx index bdc107964..d3640db68 100644 --- a/src/shipping/views/ShippingZonesList.tsx +++ b/src/shipping/views/ShippingZonesList.tsx @@ -1,7 +1,6 @@ import { DialogContentText, IconButton } from "@material-ui/core"; import DeleteIcon from "@material-ui/icons/Delete"; import ActionDialog from "@saleor/components/ActionDialog"; -import { DEFAULT_INITIAL_PAGINATION_DATA } from "@saleor/config"; import { configurationMenuUrl } from "@saleor/configuration"; import useBulkActions from "@saleor/hooks/useBulkActions"; import useListSettings from "@saleor/hooks/useListSettings"; @@ -56,13 +55,7 @@ export const ShippingZonesList: React.FC = ({ ListViews.SHIPPING_METHODS_LIST ); - usePaginationReset( - shippingZonesListUrl({ - ...params, - ...DEFAULT_INITIAL_PAGINATION_DATA - }), - settings.rowNumber - ); + usePaginationReset(shippingZonesListUrl, params, settings.rowNumber); const intl = useIntl(); diff --git a/src/staff/views/StaffList/StaffList.tsx b/src/staff/views/StaffList/StaffList.tsx index d3b522127..f9661cda9 100644 --- a/src/staff/views/StaffList/StaffList.tsx +++ b/src/staff/views/StaffList/StaffList.tsx @@ -4,11 +4,7 @@ import SaveFilterTabDialog, { SaveFilterTabDialogFormData } from "@saleor/components/SaveFilterTabDialog"; import { useShopLimitsQuery } from "@saleor/components/Shop/query"; -import { - APP_MOUNT_URI, - DEFAULT_INITIAL_PAGINATION_DATA, - DEFAULT_INITIAL_SEARCH_DATA -} from "@saleor/config"; +import { APP_MOUNT_URI, DEFAULT_INITIAL_SEARCH_DATA } from "@saleor/config"; import { configurationMenuUrl } from "@saleor/configuration"; import useListSettings from "@saleor/hooks/useListSettings"; import useNavigator from "@saleor/hooks/useNavigator"; @@ -67,13 +63,7 @@ export const StaffList: React.FC = ({ params }) => { ); const intl = useIntl(); - usePaginationReset( - staffListUrl({ - ...params, - ...DEFAULT_INITIAL_PAGINATION_DATA - }), - settings.rowNumber - ); + usePaginationReset(staffListUrl, params, settings.rowNumber); const paginationState = createPaginationState(settings.rowNumber, params); const queryVariables = React.useMemo( diff --git a/src/warehouses/views/WarehouseList/WarehouseList.tsx b/src/warehouses/views/WarehouseList/WarehouseList.tsx index 5d1c2c110..ff6eb262a 100644 --- a/src/warehouses/views/WarehouseList/WarehouseList.tsx +++ b/src/warehouses/views/WarehouseList/WarehouseList.tsx @@ -4,7 +4,6 @@ import SaveFilterTabDialog, { } from "@saleor/components/SaveFilterTabDialog"; import { useShopLimitsQuery } from "@saleor/components/Shop/query"; import { WindowTitle } from "@saleor/components/WindowTitle"; -import { DEFAULT_INITIAL_PAGINATION_DATA } from "@saleor/config"; import { configurationMenuUrl } from "@saleor/configuration"; import useListSettings from "@saleor/hooks/useListSettings"; import useNavigator from "@saleor/hooks/useNavigator"; @@ -59,13 +58,7 @@ const WarehouseList: React.FC = ({ params }) => { ); const intl = useIntl(); - usePaginationReset( - warehouseListUrl({ - ...params, - ...DEFAULT_INITIAL_PAGINATION_DATA - }), - settings.rowNumber - ); + usePaginationReset(warehouseListUrl, params, settings.rowNumber); const paginationState = createPaginationState(settings.rowNumber, params); const queryVariables = React.useMemo(