summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2024-09-02 14:40:34 +0700
committerit-fixcomart <it@fixcomart.co.id>2024-09-02 14:40:34 +0700
commit3f384749fe51a2763e7e99351f36ce70954afb7a (patch)
tree2a14c955baa688789021ce85e37268f4cda2c17b /src
parentbf805f7da68891250a10d85d9206607de3cbfacf (diff)
<iman> temp save
Diffstat (limited to 'src')
-rw-r--r--src/lib/product/api/productSearchApi.js2
-rw-r--r--src/pages/api/shop/promo.js7
-rw-r--r--src/pages/shop/promo/[slug].jsx (renamed from src/pages/shop/promo/[slug].tsx)42
-rw-r--r--src/utils/solrMapping.js2
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 = {