summaryrefslogtreecommitdiff
path: root/src/pages/shop
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2024-07-27 08:27:54 +0700
committerit-fixcomart <it@fixcomart.co.id>2024-07-27 08:27:54 +0700
commite5a01976cb665b824b2ad6426a2c52a5bd0964e6 (patch)
tree2225b76f4824c5f9e80467dceedf257c46887297 /src/pages/shop
parent4758a0989f2ec0d79e1c5e3a3d42c249f28a9e72 (diff)
<iman> add feature category lob
Diffstat (limited to 'src/pages/shop')
-rw-r--r--src/pages/shop/lob/[slug].jsx73
1 files changed, 73 insertions, 0 deletions
diff --git a/src/pages/shop/lob/[slug].jsx b/src/pages/shop/lob/[slug].jsx
new file mode 100644
index 00000000..be8db639
--- /dev/null
+++ b/src/pages/shop/lob/[slug].jsx
@@ -0,0 +1,73 @@
+import _ from 'lodash';
+import dynamic from 'next/dynamic';
+import { useRouter } from 'next/router';
+import Seo from '@/core/components/Seo';
+import { getIdFromSlug, getNameFromSlug } from '@/core/utils/slug';
+import Breadcrumb from '@/lib/category/components/Breadcrumb';
+import { useEffect, useState } from 'react';
+import odooApi from '@/core/api/odooApi';
+
+const BasicLayout = dynamic(() => import('@/core/components/layouts/BasicLayout'));
+const ProductSearch = dynamic(() => import('@/lib/product/components/ProductSearch'));
+const CategorySection = dynamic(() => import('@/lib/product/components/CategorySection'));
+
+export default function CategoryDetail() {
+ const router = useRouter();
+ const { slug = '', page = 1 } = router.query;
+ const [dataLob, setDataLob] = useState([]);
+ const [finalQuery, setFinalQuery] = useState({});
+
+ const categoryName = getNameFromSlug(slug);
+ const lobId = getIdFromSlug(slug);
+
+ useEffect(() => {
+ const fetchCategoryData = async () => {
+ try {
+ const lobData = await odooApi('GET', `/api/v1/lob_homepage?lob_id=${lobId}`);
+ setDataLob(lobData);
+ } catch (error) {
+ console.error("Error fetching category data:", error);
+ }
+ };
+
+ fetchCategoryData();
+ }, [lobId]);
+
+ console.log("dataLob",dataLob)
+
+ useEffect(() => {
+ const collectIds = (categories) => {
+ return categories?.categoryIds?.map(data => data.id) || [];
+ };
+
+ const ids = collectIds(dataLob[0]);
+ const newQuery = {
+ fq: `category_id_ids:(${ids.join(' OR ')})`,
+ page: 1,
+ brand: router.query.brand || '',
+ };
+ setFinalQuery(newQuery);
+ console.log("finalQuery",finalQuery)
+ }, [dataLob, router.query.brand]);
+
+ return (
+ <BasicLayout>
+ <Seo
+ title={`Beli ${categoryName} di Indoteknik`}
+ description={`Jual ${categoryName} Kirim Jakarta Surabaya Semarang Makassar Manado Denpasar Balikpapan Medan Palembang Lampung Bali Bandung Makassar Manado.`}
+ additionalMetaTags={[
+ {
+ property: 'keywords',
+ content: `Jual ${categoryName}, harga ${categoryName}, ${categoryName} murah, toko ${categoryName}, ${categoryName} jakarta, ${categoryName} surabaya`,
+ },
+ ]}
+ />
+
+ <Breadcrumb categoryId={getIdFromSlug(slug)} />
+
+ {!_.isEmpty(router.query) && (
+ <ProductSearch query={finalQuery} categories={getIdFromSlug(slug)} prefixUrl={`/shop/lob/${slug}`} />
+ )}
+ </BasicLayout>
+ );
+}