summaryrefslogtreecommitdiff
path: root/src/pages/shop
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2024-09-02 13:24:07 +0700
committerit-fixcomart <it@fixcomart.co.id>2024-09-02 13:24:07 +0700
commitbf805f7da68891250a10d85d9206607de3cbfacf (patch)
tree45355b1ed81f0a086497a8717636ee368b7ba578 /src/pages/shop
parent702b5d9b6e215ad812fadaff3325e1e6164d3b24 (diff)
<iman> temp save update fetch data promotion program line
Diffstat (limited to 'src/pages/shop')
-rw-r--r--src/pages/shop/promo/[slug].tsx67
1 files changed, 49 insertions, 18 deletions
diff --git a/src/pages/shop/promo/[slug].tsx b/src/pages/shop/promo/[slug].tsx
index aaee1249..92f5b7f8 100644
--- a/src/pages/shop/promo/[slug].tsx
+++ b/src/pages/shop/promo/[slug].tsx
@@ -2,30 +2,31 @@ import dynamic from 'next/dynamic'
import NextImage from 'next/image';
import { useEffect, useState } from 'react'
import { useRouter } from 'next/router'
-import Seo from '../../../core/components/Seo'
-import Promocrumb from '../../../lib/promo/components/Promocrumb'
-import { fetchPromoItemsSolr, fetchVariantSolr } from '../../../api/promoApi'
+import Seo from '../../../core/components/Seo.jsx'
+import Promocrumb from '../../../lib/promo/components/Promocrumb.jsx'
+import { fetchPromoItemsSolr, fetchVariantSolr } from '../../../api/promoApi.js'
import LogoSpinner from '../../../core/components/elements/Spinner/LogoSpinner.jsx'
-import ProductPromoCard from '../../../../src-migrate/modules/product-promo/components/Card'
-import { IPromotion } from '../../../../src-migrate/types/promotion'
+import ProductPromoCard from '../../../../src-migrate/modules/product-promo/components/Card.tsx'
+import { IPromotion } from '../../../../src-migrate/types/promotion.ts'
import React from 'react'
import { SolrResponse } from "../../../../src-migrate/types/solr.ts";
-import DesktopView from '../../../core/components/views/DesktopView';
-import MobileView from '../../../core/components/views/MobileView';
+import DesktopView from '../../../core/components/views/DesktopView.jsx';
+import MobileView from '../../../core/components/views/MobileView.jsx';
import 'swiper/swiper-bundle.css';
-import useDevice from '../../../core/hooks/useDevice'
-import ProductFilterDesktop from '../../../lib/product/components/ProductFilterDesktopPromotion';
-import ProductFilter from '../../../lib/product/components/ProductFilter';
+import useDevice from '../../../core/hooks/useDevice.js'
+import ProductFilterDesktop from '../../../lib/product/components/ProductFilterDesktopPromotion.jsx';
+import ProductFilter from '../../../lib/product/components/ProductFilter.jsx';
import { HStack, Image, Tag, TagCloseButton, TagLabel } from '@chakra-ui/react';
-import { formatCurrency } from '../../../core/utils/formatValue';
-import Pagination from '../../../core/components/elements/Pagination/Pagination';
-import SideBanner from '../../../../src-migrate/modules/side-banner';
-import whatsappUrl from '../../../core/utils/whatsappUrl';
+import { formatCurrency } from '../../../core/utils/formatValue.js';
+import Pagination from '../../../core/components/elements/Pagination/Pagination.js';
+import SideBanner from '../../../../src-migrate/modules/side-banner/index.tsx';
+import whatsappUrl from '../../../core/utils/whatsappUrl.js';
import { cons, toQuery } from 'lodash-contrib';
import _ from 'lodash';
-import useActive from '../../../core/hooks/useActive';
+import useActive from '../../../core/hooks/useActive.js';
+import useProductSearch from '../../../lib/product/hooks/useProductSearch.js';
-const BasicLayout = dynamic(() => import('../../../core/components/layouts/BasicLayout'))
+const BasicLayout = dynamic(() => import('../../../core/components/layouts/BasicLayout.jsx'))
export default function PromoDetail() {
const router = useRouter()
@@ -40,9 +41,39 @@ export default function PromoDetail() {
const [categories, setCategories] = useState<Category[]>([]);
const [brandValues, setBrandValues] = useState<string[]>([]);
const [categoryValues, setCategoryValues] = useState<string[]>([]);
- const [orderBy, setOrderBy] = useState(router.query?.orderBy || 'popular');
+ 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 [finalQuery, setFinalQuery] = useState({fq: `type_value_s:${slug}`});
+ const [products, setProducts] = useState(null);
+ useEffect(() => {
+ setQueryFinal({ ...finalQuery, q, limit, orderBy });
+}, [router.query, prefixUrl, slug, brand, category, priceFrom, priceTo, currentPage]);
+ useEffect(() => {
+ setQueryFinal({ ...finalQuery, q, limit, orderBy });
+ }, [router.query, prefixUrl, slug, brand, category, priceFrom, priceTo, currentPage]);
+
+ const { productSearch } = useProductSearch({
+ query: queryFinal,
+ operation: 'OR',
+ });
+
+ console.log("productSearch",productSearch)
+ console.log("queryFinal",queryFinal)
+
+ const pageCount = Math.ceil(productSearch.data?.response.numFound / limit);
+ const productStart = productSearch.data?.responseHeader.params.start;
+ const productRows = limit;
+ const productFound = productSearch.data?.response.numFound;
+
+ useEffect(() => {
+ setProducts(productSearch.data?.response?.products);
+ }, [productSearch]);
+
+ console.log("products",products)
useEffect(() => {
if (router.query.brand) {
@@ -91,7 +122,7 @@ export default function PromoDetail() {
setCurrentPage(pageNumber)
try {
- const items = await fetchPromoItemsSolr(`type_value_s:${Array.isArray(slug) ? slug[0] : slug}`,0,100);
+ const items = await fetchPromoItemsSolr(`type_value_s:${Array.isArray(slug) ? slug[0] : slug}`,0,10);
setPromoItems(items);
if (items.length === 0) {