service page updated for multiple data

This commit is contained in:
nabijonovdavronbek619@gmail.com
2026-02-17 19:12:52 +05:00
parent 974d31c096
commit 137dc3e7c2
18 changed files with 323 additions and 138 deletions

View File

@@ -6,7 +6,6 @@ import { getRouteLang } from "@/request/getLang";
import { endPoints } from "@/request/links";
import { useCategory } from "@/store/useCategory";
import { useQuery } from "@tanstack/react-query";
import { useEffect } from "react";
import CatalogCardSkeletonSmall from "./loading";
import Image from "next/image";
import { ArrowUpRight } from "lucide-react";
@@ -19,9 +18,6 @@ export default function FilterCatalog() {
queryFn: () => httpClient(endPoints.category.all),
select: (data): CategoryType[] => data?.data?.results,
});
useEffect(() => {
console.log("product catalog data: ", data);
}, [data]);
if (isLoading) {
return (

View File

@@ -38,10 +38,7 @@ export default function Filter() {
const { data: categoryBack } = useQuery({
queryKey: ["category"],
queryFn: () => httpClient(endPoints.category.all),
select: (data) => {
console.log("category data on filter: ", data?.data?.results);
return data?.data?.results;
},
select: (data) => data?.data?.results,
});
// ⭐ O'ZGARTIRILDI: subCategory so'rovi faqat dropdown ochilganda va have_sub_category true bo'lganda
@@ -53,10 +50,7 @@ export default function Filter() {
!!category.id &&
category.have_sub_category === true &&
openDropdowns[category.id] === true,
select: (data) => {
console.log("subCategory filter data: ", data?.data?.results);
return data?.data?.results;
},
select: (data) => data?.data?.results,
});
// ⭐ O'ZGARTIRILDI: Catalog va Size query'lari category yoki subCategory ID'ga qarab ishlaydi

View File

@@ -5,18 +5,18 @@ import { useQuery } from "@tanstack/react-query";
import ProductCard from "./productCard";
import { useCategory } from "@/store/useCategory";
import { useFilter } from "@/lib/filter-zustand";
import { useEffect, useMemo } from "react";
import { useMemo } from "react";
import { useProductPageInfo } from "@/store/useProduct";
import { useSubCategory } from "@/store/useSubCategory";
import { useTranslations } from "next-intl";
export default function MainProduct() {
const t = useTranslations();
const category = useCategory((state) => state.category);
const subCategory = useSubCategory((state) => state.subCategory);
const filter = useFilter((state) => state.filter);
const getFiltersByType = useFilter((state) => state.getFiltersByType);
const setProduct = useProductPageInfo((state) => state.setProducts);
console.log("subCategory data: ", subCategory);
// Query params yaratish
const queryParams = useMemo(() => {
const catalog = getFiltersByType("catalog");
@@ -40,15 +40,12 @@ export default function MainProduct() {
// Query params qo'shish
return `${baseLink}${queryParams}`;
}, [category.id, category.have_sub_category, queryParams , subCategory.id]);
}, [category.id, category.have_sub_category, queryParams, subCategory.id]);
const { data, isLoading, error } = useQuery({
queryKey: ["products", subCategory.id, queryParams],
queryFn: () => httpClient(requestLink),
select: (data) => {
console.log("product: ", data?.data?.data?.results);
return data?.data?.data?.results;
},
select: (data) => data?.data?.data?.results,
});
if (isLoading) {
@@ -62,17 +59,13 @@ export default function MainProduct() {
}
if (error) {
return (
<div className="text-center text-red-500 py-10">
Ma'lumotlarni yuklashda xatolik yuz berdi
</div>
);
return <div className="text-center text-red-500 py-10">{t("loadingError")}</div>;
}
if (!data || data.length === 0) {
return (
<div className="text-center text-gray-400 py-10">
Mahsulotlar topilmadi
{t("productsNotFound")}
</div>
);
}