UNPKG

react-garden

Version:

React + TypeScript + ThreeJS app using Material UI on NextJS, Apollo Client, GraphQL + WordPress REST APIs, for ThreeD web development.. a part of the threed.ai code family.

43 lines (35 loc) 1.05 kB
// ** React Imports import { useState } from 'react' // ** MUI Imports import Box from '@mui/material/Box' // ** Third Party Components import { useKeenSlider } from 'keen-slider/react' const images = [ '/images/banners/banner-9.jpg', '/images/banners/banner-7.jpg', '/images/banners/banner-6.jpg', '/images/banners/banner-10.jpg', '/images/banners/banner-8.jpg' ] const SwiperFader = ({ direction }) => { const [opacities, setOpacities] = useState([]) // ** Hook const [sliderRef] = useKeenSlider({ slides: images.length, rtl: direction === 'rtl', detailsChanged(s) { const new_opacities = s.track.details.slides.map(slide => slide.portion) setOpacities(new_opacities) } }) return ( <Box ref={sliderRef} className='fader' sx={{ height: [200, 250, 395] }}> {images.map((src, idx) => ( <Box key={idx} className='fader__slide' sx={{ opacity: opacities[idx] }}> <img src={src} alt={`slider ${idx}`} /> </Box> ))} </Box> ) } export default SwiperFader