@@ -108,7 +108,6 @@ const Filters: FC<FiltersProps> = ({
|
|||||||
setFilters(defaultValues);
|
setFilters(defaultValues);
|
||||||
setInputValues(defaultInputs);
|
setInputValues(defaultInputs);
|
||||||
setMultiSelectValues(defaultMultiSelects);
|
setMultiSelectValues(defaultMultiSelects);
|
||||||
onChange(defaultValues);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, [fields, initialValues, onChange]);
|
}, [fields, initialValues, onChange]);
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ export const useUrlPagination = (defaultPage = 1) => {
|
|||||||
}, [searchParams, defaultPage]);
|
}, [searchParams, defaultPage]);
|
||||||
|
|
||||||
const handlePageChange = useCallback(
|
const handlePageChange = useCallback(
|
||||||
(page: number) => {
|
(page: number, options?: { replace?: boolean }) => {
|
||||||
setSearchParams(
|
setSearchParams(
|
||||||
(prev) => {
|
(prev) => {
|
||||||
const next = new URLSearchParams(prev);
|
const next = new URLSearchParams(prev);
|
||||||
@@ -23,7 +23,7 @@ export const useUrlPagination = (defaultPage = 1) => {
|
|||||||
}
|
}
|
||||||
return next;
|
return next;
|
||||||
},
|
},
|
||||||
{ replace: false },
|
{ replace: options?.replace ?? false },
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
[setSearchParams, defaultPage],
|
[setSearchParams, defaultPage],
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import { useState, useMemo } from "react";
|
import { useState, useMemo } from "react";
|
||||||
import type { FilterValues } from "@/components/Filters";
|
import type { FilterValues } from "@/components/Filters";
|
||||||
|
import { useUrlPagination } from "@/hooks/useUrlPagination";
|
||||||
import type { GetAdminsParams } from "../types/Types";
|
import type { GetAdminsParams } from "../types/Types";
|
||||||
|
|
||||||
const DEFAULT_PAGE = 1;
|
const DEFAULT_PAGE = 1;
|
||||||
@@ -7,7 +8,7 @@ const DEFAULT_LIMIT = 10;
|
|||||||
|
|
||||||
export const useAdminFilters = () => {
|
export const useAdminFilters = () => {
|
||||||
const [filters, setFilters] = useState<FilterValues>({});
|
const [filters, setFilters] = useState<FilterValues>({});
|
||||||
const [currentPage, setCurrentPage] = useState(DEFAULT_PAGE);
|
const { currentPage, handlePageChange, resetPage } = useUrlPagination(DEFAULT_PAGE);
|
||||||
const [limit] = useState(DEFAULT_LIMIT);
|
const [limit] = useState(DEFAULT_LIMIT);
|
||||||
|
|
||||||
const apiParams = useMemo<GetAdminsParams>(() => {
|
const apiParams = useMemo<GetAdminsParams>(() => {
|
||||||
@@ -25,11 +26,7 @@ export const useAdminFilters = () => {
|
|||||||
|
|
||||||
const handleFiltersChange = (newFilters: FilterValues) => {
|
const handleFiltersChange = (newFilters: FilterValues) => {
|
||||||
setFilters(newFilters);
|
setFilters(newFilters);
|
||||||
setCurrentPage(DEFAULT_PAGE);
|
resetPage();
|
||||||
};
|
|
||||||
|
|
||||||
const handlePageChange = (page: number) => {
|
|
||||||
setCurrentPage(page);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { type FC, useState } from 'react'
|
import { type FC } from 'react'
|
||||||
import Table from '@/components/Table'
|
import Table from '@/components/Table'
|
||||||
import Filters from '@/components/Filters'
|
import Filters from '@/components/Filters'
|
||||||
import Switch from '@/components/Switch'
|
import Switch from '@/components/Switch'
|
||||||
@@ -8,6 +8,7 @@ import type { FilterValues } from '@/components/Filters'
|
|||||||
import { Link } from 'react-router-dom'
|
import { Link } from 'react-router-dom'
|
||||||
import { Pages } from '@/config/Pages'
|
import { Pages } from '@/config/Pages'
|
||||||
import { formatOptionalDate } from '@/helpers/func'
|
import { formatOptionalDate } from '@/helpers/func'
|
||||||
|
import { useUrlPagination } from '@/hooks/useUrlPagination'
|
||||||
|
|
||||||
interface CommentData extends RowDataType {
|
interface CommentData extends RowDataType {
|
||||||
id: number
|
id: number
|
||||||
@@ -21,13 +22,9 @@ interface CommentData extends RowDataType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const CommentsList: FC = () => {
|
const CommentsList: FC = () => {
|
||||||
const [currentPage, setCurrentPage] = useState(1)
|
const { currentPage, handlePageChange } = useUrlPagination()
|
||||||
const totalPages = 2
|
const totalPages = 2
|
||||||
|
|
||||||
const handlePageChange = (page: number) => {
|
|
||||||
setCurrentPage(page)
|
|
||||||
}
|
|
||||||
|
|
||||||
const handleFiltersChange = (newFilters: FilterValues) => {
|
const handleFiltersChange = (newFilters: FilterValues) => {
|
||||||
console.log('فیلترها:', newFilters)
|
console.log('فیلترها:', newFilters)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,21 +1,18 @@
|
|||||||
import { useState } from "react";
|
import { useState } from "react";
|
||||||
import type { FilterValues } from "@/components/Filters";
|
import type { FilterValues } from "@/components/Filters";
|
||||||
|
import { useUrlPagination } from "@/hooks/useUrlPagination";
|
||||||
|
|
||||||
const DEFAULT_PAGE = 1;
|
const DEFAULT_PAGE = 1;
|
||||||
const DEFAULT_LIMIT = 10;
|
const DEFAULT_LIMIT = 10;
|
||||||
|
|
||||||
export const useCouponFilters = () => {
|
export const useCouponFilters = () => {
|
||||||
const [filters, setFilters] = useState<FilterValues>({});
|
const [filters, setFilters] = useState<FilterValues>({});
|
||||||
const [currentPage, setCurrentPage] = useState(DEFAULT_PAGE);
|
const { currentPage, handlePageChange, resetPage } = useUrlPagination(DEFAULT_PAGE);
|
||||||
const [limit] = useState(DEFAULT_LIMIT);
|
const [limit] = useState(DEFAULT_LIMIT);
|
||||||
|
|
||||||
const handleFiltersChange = (newFilters: FilterValues) => {
|
const handleFiltersChange = (newFilters: FilterValues) => {
|
||||||
setFilters(newFilters);
|
setFilters(newFilters);
|
||||||
setCurrentPage(DEFAULT_PAGE);
|
resetPage();
|
||||||
};
|
|
||||||
|
|
||||||
const handlePageChange = (page: number) => {
|
|
||||||
setCurrentPage(page);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -71,10 +71,11 @@ const CustomersList: FC = () => {
|
|||||||
const effectivePage = Math.min(currentPage, totalPages)
|
const effectivePage = Math.min(currentPage, totalPages)
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
if (isLoading) return
|
||||||
if (currentPage > totalPages) {
|
if (currentPage > totalPages) {
|
||||||
handlePageChange(totalPages)
|
handlePageChange(totalPages, { replace: true })
|
||||||
}
|
}
|
||||||
}, [currentPage, totalPages, handlePageChange])
|
}, [currentPage, totalPages, handlePageChange, isLoading])
|
||||||
|
|
||||||
const paginatedCustomers = useMemo(() => {
|
const paginatedCustomers = useMemo(() => {
|
||||||
const startIndex = (effectivePage - 1) * limit
|
const startIndex = (effectivePage - 1) * limit
|
||||||
|
|||||||
@@ -1,12 +1,13 @@
|
|||||||
import { useState, useMemo } from "react";
|
import { useState, useMemo } from "react";
|
||||||
import type { FilterValues } from "@/components/Filters";
|
import type { FilterValues } from "@/components/Filters";
|
||||||
|
import { useUrlPagination } from "@/hooks/useUrlPagination";
|
||||||
|
|
||||||
const DEFAULT_PAGE = 1;
|
const DEFAULT_PAGE = 1;
|
||||||
const DEFAULT_LIMIT = 10;
|
const DEFAULT_LIMIT = 10;
|
||||||
|
|
||||||
export const useNotificationFilters = () => {
|
export const useNotificationFilters = () => {
|
||||||
const [filters, setFilters] = useState<FilterValues>({});
|
const [filters, setFilters] = useState<FilterValues>({});
|
||||||
const [currentPage, setCurrentPage] = useState(DEFAULT_PAGE);
|
const { currentPage, handlePageChange, resetPage } = useUrlPagination(DEFAULT_PAGE);
|
||||||
const [limit] = useState(DEFAULT_LIMIT);
|
const [limit] = useState(DEFAULT_LIMIT);
|
||||||
|
|
||||||
const apiParams = useMemo(() => {
|
const apiParams = useMemo(() => {
|
||||||
@@ -28,11 +29,7 @@ export const useNotificationFilters = () => {
|
|||||||
|
|
||||||
const handleFiltersChange = (newFilters: FilterValues) => {
|
const handleFiltersChange = (newFilters: FilterValues) => {
|
||||||
setFilters(newFilters);
|
setFilters(newFilters);
|
||||||
setCurrentPage(DEFAULT_PAGE);
|
resetPage();
|
||||||
};
|
|
||||||
|
|
||||||
const handlePageChange = (page: number) => {
|
|
||||||
setCurrentPage(page);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -29,10 +29,11 @@ const OrdersList: FC = () => {
|
|||||||
const effectivePage = Math.min(currentPage, totalPages)
|
const effectivePage = Math.min(currentPage, totalPages)
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
if (isLoading || !ordersData) return
|
||||||
if (currentPage > totalPages) {
|
if (currentPage > totalPages) {
|
||||||
handlePageChange(totalPages)
|
handlePageChange(totalPages, { replace: true })
|
||||||
}
|
}
|
||||||
}, [currentPage, totalPages, handlePageChange])
|
}, [currentPage, totalPages, handlePageChange, isLoading, ordersData])
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className='mt-5'>
|
<div className='mt-5'>
|
||||||
|
|||||||
@@ -1,21 +1,18 @@
|
|||||||
import { useState, useMemo } from "react";
|
import { useState, useMemo } from "react";
|
||||||
import type { FilterValues } from "@/components/Filters";
|
import type { FilterValues } from "@/components/Filters";
|
||||||
|
import { useUrlPagination } from "@/hooks/useUrlPagination";
|
||||||
|
|
||||||
const DEFAULT_PAGE = 1;
|
const DEFAULT_PAGE = 1;
|
||||||
const DEFAULT_LIMIT = 10;
|
const DEFAULT_LIMIT = 10;
|
||||||
|
|
||||||
export const usePagerFilters = () => {
|
export const usePagerFilters = () => {
|
||||||
const [filters, setFilters] = useState<FilterValues>({});
|
const [filters, setFilters] = useState<FilterValues>({});
|
||||||
const [currentPage, setCurrentPage] = useState(DEFAULT_PAGE);
|
const { currentPage, handlePageChange, resetPage } = useUrlPagination(DEFAULT_PAGE);
|
||||||
const [limit] = useState(DEFAULT_LIMIT);
|
const [limit] = useState(DEFAULT_LIMIT);
|
||||||
|
|
||||||
const handleFiltersChange = (newFilters: FilterValues) => {
|
const handleFiltersChange = (newFilters: FilterValues) => {
|
||||||
setFilters(newFilters);
|
setFilters(newFilters);
|
||||||
setCurrentPage(DEFAULT_PAGE);
|
resetPage();
|
||||||
};
|
|
||||||
|
|
||||||
const handlePageChange = (page: number) => {
|
|
||||||
setCurrentPage(page);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const filteredData = useMemo(() => {
|
const filteredData = useMemo(() => {
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import { useState, useMemo } from "react";
|
import { useState, useMemo } from "react";
|
||||||
import type { FilterValues } from "@/components/Filters";
|
import type { FilterValues } from "@/components/Filters";
|
||||||
|
import { useUrlPagination } from "@/hooks/useUrlPagination";
|
||||||
import type { GetRestaurantPaymentMethodsParams } from "../types/Types";
|
import type { GetRestaurantPaymentMethodsParams } from "../types/Types";
|
||||||
|
|
||||||
const DEFAULT_PAGE = 1;
|
const DEFAULT_PAGE = 1;
|
||||||
@@ -7,7 +8,7 @@ const DEFAULT_LIMIT = 10;
|
|||||||
|
|
||||||
export const usePaymentMethodFilters = () => {
|
export const usePaymentMethodFilters = () => {
|
||||||
const [filters, setFilters] = useState<FilterValues>({});
|
const [filters, setFilters] = useState<FilterValues>({});
|
||||||
const [currentPage, setCurrentPage] = useState(DEFAULT_PAGE);
|
const { currentPage, handlePageChange, resetPage } = useUrlPagination(DEFAULT_PAGE);
|
||||||
const [limit] = useState(DEFAULT_LIMIT);
|
const [limit] = useState(DEFAULT_LIMIT);
|
||||||
|
|
||||||
const apiParams = useMemo<GetRestaurantPaymentMethodsParams>(() => {
|
const apiParams = useMemo<GetRestaurantPaymentMethodsParams>(() => {
|
||||||
@@ -25,11 +26,7 @@ export const usePaymentMethodFilters = () => {
|
|||||||
|
|
||||||
const handleFiltersChange = (newFilters: FilterValues) => {
|
const handleFiltersChange = (newFilters: FilterValues) => {
|
||||||
setFilters(newFilters);
|
setFilters(newFilters);
|
||||||
setCurrentPage(DEFAULT_PAGE);
|
resetPage();
|
||||||
};
|
|
||||||
|
|
||||||
const handlePageChange = (page: number) => {
|
|
||||||
setCurrentPage(page);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import { useState, useMemo } from "react";
|
import { useState, useMemo } from "react";
|
||||||
import type { FilterValues } from "@/components/Filters";
|
import type { FilterValues } from "@/components/Filters";
|
||||||
|
import { useUrlPagination } from "@/hooks/useUrlPagination";
|
||||||
import type { GetProductsParams } from "../types/Types";
|
import type { GetProductsParams } from "../types/Types";
|
||||||
|
|
||||||
const DEFAULT_PAGE = 1;
|
const DEFAULT_PAGE = 1;
|
||||||
@@ -7,7 +8,7 @@ const DEFAULT_LIMIT = 10;
|
|||||||
|
|
||||||
export const useProductFilters = () => {
|
export const useProductFilters = () => {
|
||||||
const [filters, setFilters] = useState<FilterValues>({});
|
const [filters, setFilters] = useState<FilterValues>({});
|
||||||
const [currentPage, setCurrentPage] = useState(DEFAULT_PAGE);
|
const { currentPage, handlePageChange, resetPage } = useUrlPagination(DEFAULT_PAGE);
|
||||||
const [limit] = useState(DEFAULT_LIMIT);
|
const [limit] = useState(DEFAULT_LIMIT);
|
||||||
|
|
||||||
const apiParams = useMemo<GetProductsParams>(() => {
|
const apiParams = useMemo<GetProductsParams>(() => {
|
||||||
@@ -25,11 +26,7 @@ export const useProductFilters = () => {
|
|||||||
|
|
||||||
const handleFiltersChange = (newFilters: FilterValues) => {
|
const handleFiltersChange = (newFilters: FilterValues) => {
|
||||||
setFilters(newFilters);
|
setFilters(newFilters);
|
||||||
setCurrentPage(DEFAULT_PAGE);
|
resetPage();
|
||||||
};
|
|
||||||
|
|
||||||
const handlePageChange = (page: number) => {
|
|
||||||
setCurrentPage(page);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -1,12 +1,13 @@
|
|||||||
import { useState, useMemo } from "react";
|
import { useState, useMemo } from "react";
|
||||||
import type { FilterValues } from "@/components/Filters";
|
import type { FilterValues } from "@/components/Filters";
|
||||||
|
import { useUrlPagination } from "@/hooks/useUrlPagination";
|
||||||
|
|
||||||
const DEFAULT_PAGE = 1;
|
const DEFAULT_PAGE = 1;
|
||||||
const DEFAULT_LIMIT = 10;
|
const DEFAULT_LIMIT = 10;
|
||||||
|
|
||||||
export const useReportFilters = () => {
|
export const useReportFilters = () => {
|
||||||
const [filters, setFilters] = useState<FilterValues>({});
|
const [filters, setFilters] = useState<FilterValues>({});
|
||||||
const [currentPage, setCurrentPage] = useState(DEFAULT_PAGE);
|
const { currentPage, handlePageChange, resetPage } = useUrlPagination(DEFAULT_PAGE);
|
||||||
const [limit] = useState(DEFAULT_LIMIT);
|
const [limit] = useState(DEFAULT_LIMIT);
|
||||||
|
|
||||||
const apiParams = useMemo(() => {
|
const apiParams = useMemo(() => {
|
||||||
@@ -28,11 +29,7 @@ export const useReportFilters = () => {
|
|||||||
|
|
||||||
const handleFiltersChange = (newFilters: FilterValues) => {
|
const handleFiltersChange = (newFilters: FilterValues) => {
|
||||||
setFilters(newFilters);
|
setFilters(newFilters);
|
||||||
setCurrentPage(DEFAULT_PAGE);
|
resetPage();
|
||||||
};
|
|
||||||
|
|
||||||
const handlePageChange = (page: number) => {
|
|
||||||
setCurrentPage(page);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -1,12 +1,13 @@
|
|||||||
import { useState, useMemo } from "react";
|
import { useState, useMemo } from "react";
|
||||||
import type { FilterValues } from "@/components/Filters";
|
import type { FilterValues } from "@/components/Filters";
|
||||||
|
import { useUrlPagination } from "@/hooks/useUrlPagination";
|
||||||
|
|
||||||
const DEFAULT_PAGE = 1;
|
const DEFAULT_PAGE = 1;
|
||||||
const DEFAULT_LIMIT = 10;
|
const DEFAULT_LIMIT = 10;
|
||||||
|
|
||||||
export const useReviewFilters = () => {
|
export const useReviewFilters = () => {
|
||||||
const [filters, setFilters] = useState<FilterValues>({});
|
const [filters, setFilters] = useState<FilterValues>({});
|
||||||
const [currentPage, setCurrentPage] = useState(DEFAULT_PAGE);
|
const { currentPage, handlePageChange, resetPage } = useUrlPagination(DEFAULT_PAGE);
|
||||||
const [limit] = useState(DEFAULT_LIMIT);
|
const [limit] = useState(DEFAULT_LIMIT);
|
||||||
|
|
||||||
const apiParams = useMemo(() => {
|
const apiParams = useMemo(() => {
|
||||||
@@ -32,11 +33,7 @@ export const useReviewFilters = () => {
|
|||||||
|
|
||||||
const handleFiltersChange = (newFilters: FilterValues) => {
|
const handleFiltersChange = (newFilters: FilterValues) => {
|
||||||
setFilters(newFilters);
|
setFilters(newFilters);
|
||||||
setCurrentPage(DEFAULT_PAGE);
|
resetPage();
|
||||||
};
|
|
||||||
|
|
||||||
const handlePageChange = (page: number) => {
|
|
||||||
setCurrentPage(page);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -1,12 +1,13 @@
|
|||||||
import { useState, useMemo } from 'react'
|
import { useState, useMemo } from 'react'
|
||||||
import type { FilterValues } from '@/components/Filters'
|
import type { FilterValues } from '@/components/Filters'
|
||||||
|
import { useUrlPagination } from '@/hooks/useUrlPagination'
|
||||||
|
|
||||||
const DEFAULT_PAGE = 1
|
const DEFAULT_PAGE = 1
|
||||||
const DEFAULT_LIMIT = 10
|
const DEFAULT_LIMIT = 10
|
||||||
|
|
||||||
export const useRolesFilters = () => {
|
export const useRolesFilters = () => {
|
||||||
const [filters, setFilters] = useState<FilterValues>({})
|
const [filters, setFilters] = useState<FilterValues>({})
|
||||||
const [currentPage, setCurrentPage] = useState(DEFAULT_PAGE)
|
const { currentPage, handlePageChange, resetPage } = useUrlPagination(DEFAULT_PAGE)
|
||||||
const [limit] = useState(DEFAULT_LIMIT)
|
const [limit] = useState(DEFAULT_LIMIT)
|
||||||
|
|
||||||
const apiParams = useMemo(() => {
|
const apiParams = useMemo(() => {
|
||||||
@@ -24,11 +25,7 @@ export const useRolesFilters = () => {
|
|||||||
|
|
||||||
const handleFiltersChange = (newFilters: FilterValues) => {
|
const handleFiltersChange = (newFilters: FilterValues) => {
|
||||||
setFilters(newFilters)
|
setFilters(newFilters)
|
||||||
setCurrentPage(DEFAULT_PAGE)
|
resetPage()
|
||||||
}
|
|
||||||
|
|
||||||
const handlePageChange = (page: number) => {
|
|
||||||
setCurrentPage(page)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -1,12 +1,13 @@
|
|||||||
import { useState, useMemo } from 'react'
|
import { useState, useMemo } from 'react'
|
||||||
import type { FilterValues } from '@/components/Filters'
|
import type { FilterValues } from '@/components/Filters'
|
||||||
|
import { useUrlPagination } from '@/hooks/useUrlPagination'
|
||||||
|
|
||||||
const DEFAULT_PAGE = 1
|
const DEFAULT_PAGE = 1
|
||||||
const DEFAULT_LIMIT = 10
|
const DEFAULT_LIMIT = 10
|
||||||
|
|
||||||
export const useScheduleFilters = () => {
|
export const useScheduleFilters = () => {
|
||||||
const [filters, setFilters] = useState<FilterValues>({})
|
const [filters, setFilters] = useState<FilterValues>({})
|
||||||
const [currentPage, setCurrentPage] = useState(DEFAULT_PAGE)
|
const { currentPage, handlePageChange, resetPage } = useUrlPagination(DEFAULT_PAGE)
|
||||||
const [limit] = useState(DEFAULT_LIMIT)
|
const [limit] = useState(DEFAULT_LIMIT)
|
||||||
|
|
||||||
const apiParams = useMemo(() => {
|
const apiParams = useMemo(() => {
|
||||||
@@ -24,11 +25,7 @@ export const useScheduleFilters = () => {
|
|||||||
|
|
||||||
const handleFiltersChange = (newFilters: FilterValues) => {
|
const handleFiltersChange = (newFilters: FilterValues) => {
|
||||||
setFilters(newFilters)
|
setFilters(newFilters)
|
||||||
setCurrentPage(DEFAULT_PAGE)
|
resetPage()
|
||||||
}
|
|
||||||
|
|
||||||
const handlePageChange = (page: number) => {
|
|
||||||
setCurrentPage(page)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import { useState, useMemo } from "react";
|
import { useState, useMemo } from "react";
|
||||||
import type { FilterValues } from "@/components/Filters";
|
import type { FilterValues } from "@/components/Filters";
|
||||||
|
import { useUrlPagination } from "@/hooks/useUrlPagination";
|
||||||
import type { GetRestaurantShipmentMethodsParams } from "../types/Types";
|
import type { GetRestaurantShipmentMethodsParams } from "../types/Types";
|
||||||
|
|
||||||
const DEFAULT_PAGE = 1;
|
const DEFAULT_PAGE = 1;
|
||||||
@@ -7,7 +8,7 @@ const DEFAULT_LIMIT = 10;
|
|||||||
|
|
||||||
export const useShipmentMethodFilters = () => {
|
export const useShipmentMethodFilters = () => {
|
||||||
const [filters, setFilters] = useState<FilterValues>({});
|
const [filters, setFilters] = useState<FilterValues>({});
|
||||||
const [currentPage, setCurrentPage] = useState(DEFAULT_PAGE);
|
const { currentPage, handlePageChange, resetPage } = useUrlPagination(DEFAULT_PAGE);
|
||||||
const [limit] = useState(DEFAULT_LIMIT);
|
const [limit] = useState(DEFAULT_LIMIT);
|
||||||
|
|
||||||
const apiParams = useMemo<GetRestaurantShipmentMethodsParams>(() => {
|
const apiParams = useMemo<GetRestaurantShipmentMethodsParams>(() => {
|
||||||
@@ -25,11 +26,7 @@ export const useShipmentMethodFilters = () => {
|
|||||||
|
|
||||||
const handleFiltersChange = (newFilters: FilterValues) => {
|
const handleFiltersChange = (newFilters: FilterValues) => {
|
||||||
setFilters(newFilters);
|
setFilters(newFilters);
|
||||||
setCurrentPage(DEFAULT_PAGE);
|
resetPage();
|
||||||
};
|
|
||||||
|
|
||||||
const handlePageChange = (page: number) => {
|
|
||||||
setCurrentPage(page);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
Reference in New Issue
Block a user