mirror of
https://github.com/vercel/commerce.git
synced 2025-07-22 20:26:49 +00:00
Image Slider
This commit is contained in:
34
components/product/ProductSlider/ProductSlider.tsx
Normal file
34
components/product/ProductSlider/ProductSlider.tsx
Normal file
@@ -0,0 +1,34 @@
|
||||
import { FC, useState } from 'react'
|
||||
import React from 'react'
|
||||
import SwipeableViews from 'react-swipeable-views'
|
||||
|
||||
interface Props {
|
||||
children?: any
|
||||
}
|
||||
|
||||
const ProductSlider: FC<Props> = ({ children }) => {
|
||||
const [idx, setIdx] = useState(0)
|
||||
const count = React.Children.count(children)
|
||||
|
||||
const goBack = () => {
|
||||
idx !== 0 ? setIdx(idx - 1) : setIdx(count - 1)
|
||||
}
|
||||
|
||||
const goNext = () => {
|
||||
idx + 1 === count ? setIdx(0) : setIdx(idx + 1)
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="relative w-full h-full">
|
||||
<div className="absolute flex flex-row inset-0 z-10 opacity-0">
|
||||
<div className="flex-1 bg-cyan" onClick={goBack}></div>
|
||||
<div className="flex-1 bg-pink" onClick={goNext}></div>
|
||||
</div>
|
||||
<SwipeableViews index={idx} onChangeIndex={setIdx}>
|
||||
{children}
|
||||
</SwipeableViews>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
export default ProductSlider
|
Reference in New Issue
Block a user