summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2024-08-05 17:07:35 +0700
committerit-fixcomart <it@fixcomart.co.id>2024-08-05 17:07:35 +0700
commit54fca7062ee0963d6ea6a22a82fba7fa3fa516e5 (patch)
treefe798366f2d39a4d359efbf1a1b1a6761d37847e /src
parentaaac6b72dddf8ef8460941797a1f6d88f289f726 (diff)
<iman> update category management
Diffstat (limited to 'src')
-rw-r--r--src/lib/category/api/popularProduct.js7
-rw-r--r--src/lib/category/components/Category.jsx2
-rw-r--r--src/lib/category/components/PopularBrand.jsx105
3 files changed, 48 insertions, 66 deletions
diff --git a/src/lib/category/api/popularProduct.js b/src/lib/category/api/popularProduct.js
index 2298f6fa..e17e0ae5 100644
--- a/src/lib/category/api/popularProduct.js
+++ b/src/lib/category/api/popularProduct.js
@@ -3,12 +3,7 @@ export const fetchPromoItemsSolr = async (category_id_ids) => {
let sort ='sort=qty_sold_f desc';
try {
const queryParams = new URLSearchParams({ q: category_id_ids });
- // const response = await fetch(`/solr/product/select?${queryParams.toString()}&rows=2000&fl=manufacture_name_s&${sort}`);
- console.log("queryParams",queryParams)
-
- // const response = await fetch(`/solr/product/select?${queryParams.toString()}`);
- const response = await fetch(`/solr/promotion_program_lines/select?${queryParams.toString()}&rows=10&start=0&${sort}`);
- console.log("response",response)
+ const response = await fetch(`/solr/product/select?${queryParams.toString()}&rows=2000&fl=manufacture_name_s,manufacture_id_i,id,display_name_s&${sort}`);
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
diff --git a/src/lib/category/components/Category.jsx b/src/lib/category/components/Category.jsx
index 1f3d7a51..ff958378 100644
--- a/src/lib/category/components/Category.jsx
+++ b/src/lib/category/components/Category.jsx
@@ -31,7 +31,7 @@ const Category = () => {
}
loadCategories()
}, [])
- console.log("categories",categories)
+ // console.log("categories",categories)
return (
<DesktopView>
diff --git a/src/lib/category/components/PopularBrand.jsx b/src/lib/category/components/PopularBrand.jsx
index 32623f91..dca731e8 100644
--- a/src/lib/category/components/PopularBrand.jsx
+++ b/src/lib/category/components/PopularBrand.jsx
@@ -1,5 +1,5 @@
import odooApi from '@/core/api/odooApi'
-import {React } from 'react'
+import React, { useEffect, useState } from 'react'
import axios from 'axios';
import { useQuery } from 'react-query'
import Link from '@/core/components/elements/Link/Link'
@@ -8,89 +8,76 @@ import Image from 'next/image'
import { ChevronRightIcon } from '@heroicons/react/24/outline'
import useProductSearch from '../../../lib/product/hooks/useProductSearch';
import { SolrResponse } from "~/types/solr";
-import {fetchPromoItemsSolr} from '../api/popularProduct'
+import { fetchPromoItemsSolr } from '../api/popularProduct'
+
const SOLR_HOST = process.env.SOLR_HOST
const PopularBrand = ({ category }) => {
+ const [topBrands, setTopBrands] = useState([]);
- const queryFinal = {
- fq: `category_id_ids:(${category.categoryDataIds.join(' OR ')})`,
- fl: 'manufacture_name_s,qty_sold_f',
- sort: 'qty_sold_f desc',
- rows: '2000'
- };
-
- // Konversi objek queryFinal menjadi string query
- // const queryString = new URLSearchParams(queryFinal).toString();
-
- async function fetchTopBrands() {
+ const fetchTopBrands = async () => {
try {
- // const items = await fetchPromoItemsSolr(`category_id_ids:(${category.categoryDataIds.join(' OR ')})`);
- const items = await fetchPromoItemsSolr(`type_value_s:discount_loading`);
-
- console.log("queryFinal", queryFinal);
- console.log("items", items);
-
+ const items = await fetchPromoItemsSolr(`category_id_ids:(${category.categoryDataIds.join(' OR ')})`);
+ // console.log("id",items)
// Fungsi untuk deduplikasi dan mengambil 12 nama brand teratas
- function getTop12UniqueBrands(products) {
+ const getTop12UniqueBrands = (prod) => {
const brandSet = new Set();
const topBrands = [];
-
- for (const product of products) {
- if (!brandSet.has(product.manufacture_name_s)) {
- brandSet.add(product.manufacture_name_s);
- topBrands.push(product.manufacture_name_s);
+
+ for (const product of prod) {
+ if (!brandSet.has(product.manufacture_name)) {
+ brandSet.add(product.manufacture_name);
+ topBrands.push({ name: product.manufacture_name, id: product.manufacture_id });
+ }else{
}
- if (topBrands.length === 12) break;
+ if (topBrands.length === 18) break;
}
-
return topBrands;
}
-
+
// Menggunakan hasil pencarian produk
const products = items;
const top12UniqueBrands = getTop12UniqueBrands(products);
-
- console.log('top12UniqueBrands',top12UniqueBrands);
- return top12UniqueBrands;
+
+ // console.log('top12UniqueBrands', top12UniqueBrands);
+ setTopBrands(top12UniqueBrands);
} catch (error) {
console.error("Error fetching data from Solr", error);
throw error;
}
}
-
- fetchTopBrands();
+ useEffect(() => {
+ fetchTopBrands();
+ }, [category]);
- return (
- <div className='flex flex-col'>
- <div className='grid grid-cols-2 max-h-full w-full gap-2'>
- {category.childs.map((brand, index) => (
- (index < 8 ) && (
- <div key={brand.id} className='w-full flex items-center justify-center pb-2'>
- <Link
- href={createSlug('/shop/category/', brand.name, brand.id)}
- className='category-mega-box__child-one w-fit h-full flex items-center justify-center '
- >
- <Image src='https://erp.indoteknik.com/api/image/x_manufactures/x_logo_manufacture/661' alt='' width={104} height={44} objectFit='cover' />
- </Link>
- </div>
- )
- ))}
- </div>
- {category.childs.length > 8 && (
- <div className='flex hover:bg-gray_r-8/35 rounded-10'>
- <Link
+ return (
+ <div className='flex flex-col'>
+ <div className='grid grid-cols-3 max-h-full w-full gap-2'>
+ {topBrands.map((brand, index) => (
+ <div key={index} className='w-full flex items-center justify-center pb-2'>
+ <Link
+ href={createSlug('/shop/brands/', brand.name, brand.id)}
+ className='category-mega-box__child-one w-8 h-full flex items-center justify-center '
+ >
+ <Image src={`https://erp.indoteknik.com/api/image/x_manufactures/x_logo_manufacture/${brand.id}` } alt={`${brand.name}`} width={104} height={44} objectFit='cover' />
+ </Link>
+ </div>
+ ))}
+ </div>
+ {/* {topBrands.length > 8 && (
+ <div className='flex hover:bg-gray_r-8/35 rounded-10'>
+ <Link
href={createSlug('/shop/category/', category.name, category.id)}
className='category-mega-box__child-one flex items-center gap-4 font-bold hover:ml-4'
- >
+ >
<p className='mt-2 mb-0 text-danger-500 font-semibold'>Lihat Semua Brand</p>
<ChevronRightIcon className='w-4 text-danger-500 font-bold' />
- </Link>
- </div>
- )}
- </div>
- )
+ </Link>
+ </div>
+ )} */}
+ </div>
+ )
}
-export default PopularBrand
+export default PopularBrand;