This commit is contained in:
hamid zarghami
2025-12-24 10:53:55 +03:30
parent 85a17e42d1
commit 2f383fb00b
6 changed files with 72 additions and 75 deletions
+19 -20
View File
@@ -1,36 +1,36 @@
import { useState, useMemo } from 'react' import { useState, useMemo } from "react";
import type { FilterValues } from '@/components/Filters' import type { FilterValues } from "@/components/Filters";
import type { GetAdminsParams } from '../types/Types' import type { GetAdminsParams } from "../types/Types";
const DEFAULT_PAGE = 1 const DEFAULT_PAGE = 1;
const DEFAULT_LIMIT = 10 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, setCurrentPage] = useState(DEFAULT_PAGE);
const [limit] = useState(DEFAULT_LIMIT) const [limit] = useState(DEFAULT_LIMIT);
const apiParams = useMemo<GetAdminsParams>(() => { const apiParams = useMemo<GetAdminsParams>(() => {
const params: GetAdminsParams = { const params: GetAdminsParams = {
page: currentPage, page: currentPage,
limit: limit, limit: limit,
} };
if (filters.search) { if (filters.search) {
params.search = filters.search params.search = filters.search as string;
} }
return params return params;
}, [filters, currentPage, limit]) }, [filters, currentPage, limit]);
const handleFiltersChange = (newFilters: FilterValues) => { const handleFiltersChange = (newFilters: FilterValues) => {
setFilters(newFilters) setFilters(newFilters);
setCurrentPage(DEFAULT_PAGE) setCurrentPage(DEFAULT_PAGE);
} };
const handlePageChange = (page: number) => { const handlePageChange = (page: number) => {
setCurrentPage(page) setCurrentPage(page);
} };
return { return {
filters, filters,
@@ -39,6 +39,5 @@ export const useAdminFilters = () => {
handleFiltersChange, handleFiltersChange,
handlePageChange, handlePageChange,
limit, limit,
} };
} };
+1 -1
View File
@@ -27,7 +27,7 @@ const CouponsList: FC = () => {
const coupons = useMemo(() => couponsData?.data || [], [couponsData]) const coupons = useMemo(() => couponsData?.data || [], [couponsData])
const filteredCoupons = useMemo(() => { const filteredCoupons = useMemo(() => {
const searchValue = (filters.search || '').toLowerCase().trim() const searchValue = (filters.search as string || '').toLowerCase().trim()
const statusFilter = filters.status || 'all' const statusFilter = filters.status || 'all'
const typeFilter = filters.type || 'all' const typeFilter = filters.type || 'all'
+1 -1
View File
@@ -51,7 +51,7 @@ const CustomersList: FC = () => {
const customers = useMemo(() => usersData?.data ?? [], [usersData]) const customers = useMemo(() => usersData?.data ?? [], [usersData])
const filteredCustomers = useMemo(() => { const filteredCustomers = useMemo(() => {
const searchValue = (filters.search || '').toLowerCase().trim() const searchValue = (filters.search as string || '').toLowerCase().trim()
const statusFilter = filters.status || 'all' const statusFilter = filters.status || 'all'
return customers.filter((customer) => { return customers.filter((customer) => {
+19 -20
View File
@@ -1,36 +1,36 @@
import { useState, useMemo } from 'react' import { useState, useMemo } from "react";
import type { FilterValues } from '@/components/Filters' import type { FilterValues } from "@/components/Filters";
import type { GetFoodsParams } from '../types/Types' import type { GetFoodsParams } from "../types/Types";
const DEFAULT_PAGE = 1 const DEFAULT_PAGE = 1;
const DEFAULT_LIMIT = 10 const DEFAULT_LIMIT = 10;
export const useFoodFilters = () => { export const useFoodFilters = () => {
const [filters, setFilters] = useState<FilterValues>({}) const [filters, setFilters] = useState<FilterValues>({});
const [currentPage, setCurrentPage] = useState(DEFAULT_PAGE) const [currentPage, setCurrentPage] = useState(DEFAULT_PAGE);
const [limit] = useState(DEFAULT_LIMIT) const [limit] = useState(DEFAULT_LIMIT);
const apiParams = useMemo<GetFoodsParams>(() => { const apiParams = useMemo<GetFoodsParams>(() => {
const params: GetFoodsParams = { const params: GetFoodsParams = {
page: currentPage, page: currentPage,
limit: limit, limit: limit,
} };
if (filters.search) { if (filters.search) {
params.search = filters.search params.search = filters.search as string;
} }
return params return params;
}, [filters, currentPage, limit]) }, [filters, currentPage, limit]);
const handleFiltersChange = (newFilters: FilterValues) => { const handleFiltersChange = (newFilters: FilterValues) => {
setFilters(newFilters) setFilters(newFilters);
setCurrentPage(DEFAULT_PAGE) setCurrentPage(DEFAULT_PAGE);
} };
const handlePageChange = (page: number) => { const handlePageChange = (page: number) => {
setCurrentPage(page) setCurrentPage(page);
} };
return { return {
filters, filters,
@@ -39,6 +39,5 @@ export const useFoodFilters = () => {
handleFiltersChange, handleFiltersChange,
handlePageChange, handlePageChange,
limit, limit,
} };
} };
@@ -17,7 +17,7 @@ export const usePaymentMethodFilters = () => {
}; };
if (filters.search) { if (filters.search) {
params.search = filters.search; params.search = filters.search as string;
} }
return params; return params;
@@ -17,7 +17,7 @@ export const useShipmentMethodFilters = () => {
}; };
if (filters.search) { if (filters.search) {
params.search = filters.search; params.search = filters.search as string;
} }
return params; return params;
@@ -41,4 +41,3 @@ export const useShipmentMethodFilters = () => {
limit, limit,
}; };
}; };