summaryrefslogtreecommitdiff
path: root/src-migrate/modules/product-slider/components
diff options
context:
space:
mode:
authortrisusilo48 <tri.susilo@altama.co.id>2024-07-10 15:58:51 +0700
committertrisusilo48 <tri.susilo@altama.co.id>2024-07-10 15:58:51 +0700
commit2e3c726bc8217f3960cfecec44b81303b03de72b (patch)
tree1b85ced7f61f3e4c3f1f27b577b37aa161615065 /src-migrate/modules/product-slider/components
parent2b3bd9c0a454dbad69ce29cee877bfb1fca5dfa6 (diff)
parenta99bf6480eea556e53b85e6db45f3b8c2361e693 (diff)
Merge branch 'release' into development
# Conflicts: # src/pages/shop/product/variant/[slug].jsx
Diffstat (limited to 'src-migrate/modules/product-slider/components')
-rw-r--r--src-migrate/modules/product-slider/components/ProductSlider.tsx42
1 files changed, 42 insertions, 0 deletions
diff --git a/src-migrate/modules/product-slider/components/ProductSlider.tsx b/src-migrate/modules/product-slider/components/ProductSlider.tsx
new file mode 100644
index 00000000..05f8c322
--- /dev/null
+++ b/src-migrate/modules/product-slider/components/ProductSlider.tsx
@@ -0,0 +1,42 @@
+import 'swiper/css'
+
+import React from 'react'
+import { Swiper, SwiperSlide } from 'swiper/react'
+import { FreeMode } from 'swiper'
+
+import ProductCard from '~/modules/product-card'
+import { IProduct } from '~/types/product'
+import useDevice from '@/core/hooks/useDevice'
+
+type Props = {
+ products: IProduct[],
+ productLayout?: 'vertical' | 'horizontal',
+}
+
+const ProductSlider = ({ products, productLayout }: Props) => {
+ const { isDesktop } = useDevice()
+
+ return (
+ <div>
+ <Swiper
+ slidesPerView={isDesktop ? 6.7 : 2.2}
+ spaceBetween={isDesktop ? 16 : 12}
+ prefix='product-slider'
+ modules={[FreeMode]}
+ freeMode={{ enabled: true, sticky: false }}
+ className='!pb-0.5'
+ >
+ {products.map((product) => (
+ <SwiperSlide key={product.id}>
+ <ProductCard
+ product={product}
+ layout={productLayout}
+ />
+ </SwiperSlide>
+ ))}
+ </Swiper>
+ </div >
+ )
+}
+
+export default ProductSlider \ No newline at end of file