diff options
| author | it-fixcomart <it@fixcomart.co.id> | 2024-09-02 14:40:34 +0700 |
|---|---|---|
| committer | it-fixcomart <it@fixcomart.co.id> | 2024-09-02 14:40:34 +0700 |
| commit | 3f384749fe51a2763e7e99351f36ce70954afb7a (patch) | |
| tree | 2a14c955baa688789021ce85e37268f4cda2c17b /src | |
| parent | bf805f7da68891250a10d85d9206607de3cbfacf (diff) | |
<iman> temp save
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/product/api/productSearchApi.js | 2 | ||||
| -rw-r--r-- | src/pages/api/shop/promo.js | 7 | ||||
| -rw-r--r-- | src/pages/shop/promo/[slug].jsx (renamed from src/pages/shop/promo/[slug].tsx) | 42 | ||||
| -rw-r--r-- | src/utils/solrMapping.js | 2 |
4 files changed, 25 insertions, 28 deletions
diff --git a/src/lib/product/api/productSearchApi.js b/src/lib/product/api/productSearchApi.js index 2f792fd4..670661aa 100644 --- a/src/lib/product/api/productSearchApi.js +++ b/src/lib/product/api/productSearchApi.js @@ -1,7 +1,7 @@ import _ from 'lodash-contrib' import axios from 'axios' -const productSearchApi = async ({ query, operation = 'AND' }) => { +const productSearchApi = async ({ query, operation = 'OR' }) => { const dataProductSearch = await axios( `${process.env.NEXT_PUBLIC_SELF_HOST}/api/shop/promo?${query}&operation=${operation}` ) diff --git a/src/pages/api/shop/promo.js b/src/pages/api/shop/promo.js index 4b4c09b7..353ff3df 100644 --- a/src/pages/api/shop/promo.js +++ b/src/pages/api/shop/promo.js @@ -1,4 +1,4 @@ -import { map } from '@/utils/solrMapping'; +import { productMappingSolr, promoMappingSolr } from '@/utils/solrMapping'; import axios from 'axios'; import camelcaseObjectDeep from 'camelcase-object-deep'; @@ -55,7 +55,7 @@ export default async function handler(req, res) { 'indent=true', // `facet.query=${escapeSolrQuery(q)}`, `q.op=${operation}`, - `q=${newQ}`, + `q=${q}`, // 'qf=name_s', `start=${parseInt(offset)}`, `rows=${limit}`, @@ -110,7 +110,7 @@ export default async function handler(req, res) { ); console.log("result",result) try { - result.data.response.products = map( + result.data.response.products = promoMappingSolr( result.data.response.docs, auth?.pricelist || false ); @@ -121,6 +121,7 @@ export default async function handler(req, res) { result.data.responseHeader.params.rows ); delete result.data.response.docs; + console.log("result.data",result.data) result.data = camelcaseObjectDeep(result.data); res.status(200).json(result.data); } catch (error) { diff --git a/src/pages/shop/promo/[slug].tsx b/src/pages/shop/promo/[slug].jsx index 92f5b7f8..544286f9 100644 --- a/src/pages/shop/promo/[slug].tsx +++ b/src/pages/shop/promo/[slug].jsx @@ -31,22 +31,22 @@ const BasicLayout = dynamic(() => import('../../../core/components/layouts/Basic export default function PromoDetail() { const router = useRouter() const { slug = '', brand ='', category='', priceFrom = '', priceTo = '', page = '1' } = router.query - const [promoItems, setPromoItems] = useState<any[]>([]) - const [promoData, setPromoData] = useState<IPromotion[] | null>(null) - const [currentPage, setCurrentPage] = useState(parseInt(page as string, 10) || 1); + const [promoItems, setPromoItems] = useState([]) + const [promoData, setPromoData] = useState(null) + const [currentPage, setCurrentPage] = useState(parseInt(10) || 1); const itemsPerPage = 12; // Jumlah item yang ingin ditampilkan per halaman const [loading, setLoading] = useState(true); const { isMobile, isDesktop } = useDevice() - const [brands, setBrands] = useState<Brand[]>([]); - const [categories, setCategories] = useState<Category[]>([]); - const [brandValues, setBrandValues] = useState<string[]>([]); - const [categoryValues, setCategoryValues] = useState<string[]>([]); + const [brands, setBrands] = useState([]); + const [categories, setCategories] = useState([]); + const [brandValues, setBrandValues] = useState([]); + const [categoryValues, setCategoryValues] = useState([]); const [orderBy, setOrderBy] = useState(router.query?.orderBy); const popup = useActive(); const prefixUrl = `/shop/promo/${slug}` const [queryFinal, setQueryFinal] = useState({}); const [limit, setLimit] = useState<number>(30); - const [q, setQ] = useState('**'); + const [q, setQ] = useState('*'); const [finalQuery, setFinalQuery] = useState({fq: `type_value_s:${slug}`}); const [products, setProducts] = useState(null); useEffect(() => { @@ -75,9 +75,15 @@ export default function PromoDetail() { console.log("products",products) + + + + + + useEffect(() => { if (router.query.brand) { - let brandsArray: string[] = []; + let brandsArray= []; if (Array.isArray(router.query.brand)) { brandsArray = router.query.brand; } else if (typeof router.query.brand === 'string') { @@ -89,7 +95,7 @@ export default function PromoDetail() { } if (router.query.category) { - let categoriesArray: string[] = []; + let categoriesArray= []; if (Array.isArray(router.query.category)) { categoriesArray = router.query.category; @@ -102,21 +108,11 @@ export default function PromoDetail() { } }, [router.query.brand, router.query.category]); - interface Brand { - brand: string; - qty: number; - } - - interface Category { - name: string; - qty: number; - } - useEffect(() => { const loadPromo = async () => { setLoading(true); - const brandsData: Brand[] = []; - const categoriesData: Category[] = []; + const brandsData = []; + const categoriesData= []; const pageNumber = Array.isArray(page) ? parseInt(page[0], 10) : parseInt(page, 10); setCurrentPage(pageNumber) @@ -432,7 +428,7 @@ export default function PromoDetail() { ) : promoData && promoItems.length >= 1 ? ( <> <div className='grid grid-cols-1 gap-x-6 sm:grid-cols-1 md:grid-cols-2 lg:grid-cols-2 xl:grid-cols-3'> - {visiblePromotions?.map((promotion) => ( + {products?.map((promotion) => ( <div key={promotion.id} className="min-w-[400px] max-w-[400px] mb-[20px] sm:min-w-[350px] md:min-w-[380px] lg:min-w-[400px] xl:min-w-[400px] "> <ProductPromoCard promotion={promotion}/> </div> diff --git a/src/utils/solrMapping.js b/src/utils/solrMapping.js index e93b0b54..7a115753 100644 --- a/src/utils/solrMapping.js +++ b/src/utils/solrMapping.js @@ -1,4 +1,4 @@ -const map = (promotions) => { +export const promoMappingSolr = (promotions, pricelist) => { const result = []; for (const promotion of promotions) { const data = { |
