diff --git a/src/app/product/[id]/page.tsx b/src/app/product/[id]/page.tsx
index 284b7dd..984b95a 100644
--- a/src/app/product/[id]/page.tsx
+++ b/src/app/product/[id]/page.tsx
@@ -6,21 +6,22 @@ import { Suspense } from 'react'
import PageLoading from '@/components/PageLoading'
interface SingleProductPageProps {
- params: { id: string }
+ params: Promise<{ id: string }>
}
export default async function SingleProductPage({ params }: SingleProductPageProps) {
+ const { id } = await params
const queryClient = new QueryClient()
- await queryClient.prefetchQuery(getProductQueryOptions(params.id))
+ await queryClient.prefetchQuery(getProductQueryOptions(id))
const dehydratedState = dehydrate(queryClient)
return (
}>
-
+
diff --git a/src/app/products/hooks/useFiltersData.ts b/src/app/products/hooks/useFiltersData.ts
index fcf6f36..2d48950 100644
--- a/src/app/products/hooks/useFiltersData.ts
+++ b/src/app/products/hooks/useFiltersData.ts
@@ -31,7 +31,7 @@ export const useFiltersData = ({ categoryUrl }: UseFiltersDataProps) => {
});
// Ref for debouncing price filter
- const priceFilterTimeoutRef = useRef();
+ const priceFilterTimeoutRef = useRef(undefined);
// Get filter parameters from URL
const filterParams = useMemo(
@@ -114,7 +114,7 @@ export const useFiltersData = ({ categoryUrl }: UseFiltersDataProps) => {
const params = new URLSearchParams(searchParams.toString());
Object.entries(updates).forEach(([key, value]) => {
- if (value === null || value === "") {
+ if (value === null || value === "" || value === undefined) {
params.delete(key);
} else {
params.set(key, value);
diff --git a/src/app/products/hooks/useInfiniteProductsData.ts b/src/app/products/hooks/useInfiniteProductsData.ts
index fbfb97f..c806e54 100644
--- a/src/app/products/hooks/useInfiniteProductsData.ts
+++ b/src/app/products/hooks/useInfiniteProductsData.ts
@@ -24,7 +24,7 @@ export const useInfiniteProductsData = (
return useInfiniteQuery({
queryKey: ["infinite-products", params],
queryFn: ({ pageParam = 1 }) =>
- api.getProducts({ ...params, page: pageParam }),
+ api.getProducts({ ...params, page: pageParam as number }),
getNextPageParam: (lastPage) => {
const pager = lastPage.results.pager;
return pager.nextPage ? pager.page + 1 : undefined;
@@ -40,7 +40,10 @@ export const useInfiniteCategoryProductsData = (
return useInfiniteQuery({
queryKey: ["infinite-category-products", categoryUrl, params],
queryFn: ({ pageParam = 1 }) =>
- api.getCategoryProducts(categoryUrl, { ...params, page: pageParam }),
+ api.getCategoryProducts(categoryUrl, {
+ ...params,
+ page: pageParam as number,
+ }),
getNextPageParam: (lastPage) => {
const pager = lastPage.results.pager;
return pager.nextPage ? pager.page + 1 : undefined;