blob: 6568621cfdb4286f75bb8d6bc15694a17c386cde (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
import Image from 'next/image'
import useCategoryHome from '../hooks/useCategoryHome'
import Link from '@/core/components/elements/Link/Link'
import { createSlug } from '@/core/utils/slug'
import { useEffect, useState } from 'react';
import { bannerApi } from '../../../api/bannerApi';
const { useQuery } = require('react-query')
import { HeroBannerSkeleton } from '../../../components/skeleton/BannerSkeleton';
import useCategoryPilihan from '../hooks/useCategoryPilihan';
import useDevice from '@/core/hooks/useDevice'
import { Swiper, SwiperSlide } from 'swiper/react';
import 'swiper/css';
const CategoryPilihan = ({ id, categories }) => {
const { isDesktop, isMobile } = useDevice()
const { categoryPilihan } = useCategoryPilihan();
const heroBanner = useQuery('categoryPilihan', bannerApi({ type: 'banner-category-list' }));
return (
<section>
{isDesktop && (
<div>
<div className='flex flex-row items-center mb-4'>
<div className='font-semibold sm:text-h-lg mr-2'>LOB Kategori Pilihan</div>
<p className='text-gray_r-10 text-sm'>200 Rb+ Produk Unggulan & 800+ Brand Rekomendasi tersedia!</p>
</div>
{heroBanner.data &&
heroBanner.data?.length > 0 && (
<div className='flex w-full h-full justify-center mb-4 bg-cover bg-center'>
<Link key={heroBanner.data[0].id} href={heroBanner.data[0].url}>
<Image
width={1260}
height={170}
quality={100}
src={heroBanner.data[0].image}
alt={heroBanner.data[0].name}
className='h-full object-cover w-full'
/>
</Link>
</div>
)}
<div className="group/item grid grid-cols-6 gap-y-2 w-full h-full col-span-2 ">
{categoryPilihan?.data?.map((category) => (
<div key={category.id} className="KartuInti h-48 w-60 max-w-sm lg:max-w-full flex flex-col border-[1px] border-gray-200 relative group">
<div className='KartuB absolute h-48 w-60 inset-0 flex items-center justify-center '>
<div className="group/edit flex items-center justify-end h-48 w-60 flex-col group-hover/item:visible">
<div className=' h-36 flex justify-end items-end'>
<Image className='group-hover:scale-105 transition-transform duration-300 ' src={category?.image? category?.image : '/images/noimage.jpeg'} width={120} height={120} alt={category?.name} />
</div>
<h2 className="text-gray-700 content-center h-12 border-t-[1px] px-1 w-60 border-gray-200 font-normal text-sm text-center">{category?.industries}</h2>
</div>
</div>
<div className='KartuA relative inset-0 flex h-36 w-60 items-center justify-center opacity-0 group-hover:opacity-75 group-hover:bg-[#E20613] transition-opacity '>
<Link
href={createSlug('/shop/lob/', category?.industries, category?.id)}
className='category-mega-box__parent text-white rounded-lg'
>
Lihat semua
</Link>
</div>
</div>
))}
</div>
</div>
)}
{isMobile && (
<div className='p-4'>
<div className='flex flex-row items-center mb-4'>
<div className='font-semibold sm:text-h-md mr-2'>LOB Kategori Pilihan</div>
{/* <p className='text-gray_r-10 text-sm'>200 Rb+ Produk Unggulan & 800+ Brand Rekomendasi tersedia!</p> */}
</div>
<div className='flex'>
{heroBanner.data &&
heroBanner.data?.length > 0 && (
<div className=' object-fill '>
<Link key={heroBanner.data[0].id} href={heroBanner.data[0].url}>
<Image
width={439}
height={150}
quality={100}
src={heroBanner.data[0].image}
alt={heroBanner.data[0].name}
className='object-cover'
/>
</Link>
</div>
)}
</div>
<Swiper slidesPerView={2.1} spaceBetween={10}>
{categoryPilihan?.data?.map((category) => (
<SwiperSlide key={category.id}>
<div key={category.id} className="KartuInti mt-2 h-48 w-48 max-w-sm lg:max-w-full flex flex-col border-[1px] border-gray-200 relative group">
<div className='KartuB absolute h-48 w-48 inset-0 flex items-center justify-center '>
<div className="group/edit flex items-center justify-end h-48 w-48 flex-col group-hover/item:visible">
<div className=' h-36 flex justify-end items-end'>
<Image className='group-hover:scale-105 transition-transform duration-300 ' src={category?.image? category?.image : '/images/noimage.jpeg'} width={120} height={120} alt={category?.name} />
</div>
<h2 className="text-gray-700 content-center h-12 border-t-[1px] px-1 w-48 border-gray-200 font-normal text-sm text-center">{category?.industries}</h2>
</div>
</div>
<div className='KartuA relative inset-0 flex h-36 w-48 items-center justify-center opacity-0 group-hover:opacity-75 group-hover:bg-[#E20613] transition-opacity '>
<Link
href={createSlug('/shop/lob/', category?.industries, category?.id)}
className='category-mega-box__parent text-white rounded-lg'
>
Lihat semua
</Link>
</div>
</div>
</SwiperSlide>
))}
</Swiper>
</div>
)}
</section>
)
}
export default CategoryPilihan
|