From 3746587d5ecf639fb9ed75343aaf8f5b3d71812e Mon Sep 17 00:00:00 2001 From: Mqdd Date: Wed, 3 Dec 2025 14:01:39 +0700 Subject: Initial commit (done showing product based on keywords) --- src/pages/searchkey/[slug].jsx | 89 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 src/pages/searchkey/[slug].jsx diff --git a/src/pages/searchkey/[slug].jsx b/src/pages/searchkey/[slug].jsx new file mode 100644 index 00000000..f09520f4 --- /dev/null +++ b/src/pages/searchkey/[slug].jsx @@ -0,0 +1,89 @@ +import axios from 'axios'; +import { useRouter } from 'next/router'; +import { useEffect, useState } from 'react'; +import Seo from '@/core/components/Seo'; +import dynamic from 'next/dynamic'; +import { capitalizeEachWord } from '../../utils/capializeFIrstWord'; + +const BasicLayout = dynamic(() => + import('@/core/components/layouts/BasicLayout') +); +const ProductSearch = dynamic(() => + import('@/lib/product/components/ProductSearch') +); + +// const BASE_URL = process.env.NEXT_PUBLIC_SELF_HOST; +const BASE_URL = 'https://indoteknik.com'; + +export default function KeywordPage() { + const router = useRouter(); + const [result, setResult] = useState(null); + const [query, setQuery] = useState(null); + + // Ambil slug dari URL dinamis + const keywordSlug = router?.query?.slug || ''; + const keyword = keywordSlug.replace(/-/g, ' ').toLowerCase(); + const url = BASE_URL + router.asPath.split('?')[0]; + const slugTitle = capitalizeEachWord(keyword); + + // Fetch info dari Solr index "url_category_brand" + const getUrls = async (url) => { + try { + const response = await axios( + `${process.env.NEXT_PUBLIC_SELF_HOST}/api/shop/url-category_brand?url=${url}` + ); + const data = response?.data?.response?.docs[0] || null; + setResult(data); + console.log('[🔍 result from API]', data); // Tambahin ini + } catch (error) { + console.error('Error fetching data:', error); + } + }; + + // Panggil fetch setelah router siap + useEffect(() => { + if (router.isReady) { + getUrls(url); + } + }, [router.isReady]); + + // Jika Solr index ditemukan, siapkan parameter pencarian + useEffect(() => { + if (result) { + const fq = `category_parent_ids:${result.category_id_i} AND manufacture_id_i:${result.brand_id_i}`; + const q = keyword || '*:*'; // keyword dari URL + console.log('SOLR QUERY:', { q, fq }); + setQuery({ fq, q }); + } + }, [result, keyword]); + + if (!result) { + return ( + + +
+

Produk tidak ditemukan berdasarkan keyword

+
+
+ ); + } + + return ( + + + {query && } + + ); +} -- cgit v1.2.3