Use dynamic slides per view
This commit is contained in:
1 file changed
+15
-2
+15
-2
@@ -14,7 +14,7 @@ import {
|
|||||||
faEllipsis,
|
faEllipsis,
|
||||||
faPlay
|
faPlay
|
||||||
} from '@fortawesome/free-solid-svg-icons'
|
} from '@fortawesome/free-solid-svg-icons'
|
||||||
import { useRef } from 'react'
|
import { useEffect, useRef, useState } from 'react'
|
||||||
|
|
||||||
export default function HomePage () {
|
export default function HomePage () {
|
||||||
const {
|
const {
|
||||||
@@ -48,6 +48,19 @@ export default function HomePage () {
|
|||||||
const prevRef = useRef<HTMLButtonElement>(null)
|
const prevRef = useRef<HTMLButtonElement>(null)
|
||||||
const nextRef = useRef<HTMLButtonElement>(null)
|
const nextRef = useRef<HTMLButtonElement>(null)
|
||||||
|
|
||||||
|
const [recentSlidesPerView, setRecentSlidesPerView] = useState(1)
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const update = () => {
|
||||||
|
setRecentSlidesPerView(Math.floor(window.innerWidth / 400))
|
||||||
|
}
|
||||||
|
|
||||||
|
update()
|
||||||
|
window.addEventListener('resize', update)
|
||||||
|
|
||||||
|
return () => window.removeEventListener('resize', update)
|
||||||
|
}, [])
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className='mx-4 mt-4'>
|
<div className='mx-4 mt-4'>
|
||||||
<div className='flex flex-col gap-1 mb-4'>
|
<div className='flex flex-col gap-1 mb-4'>
|
||||||
@@ -63,7 +76,7 @@ export default function HomePage () {
|
|||||||
<Swiper
|
<Swiper
|
||||||
modules={[Navigation]}
|
modules={[Navigation]}
|
||||||
spaceBetween={16}
|
spaceBetween={16}
|
||||||
slidesPerView={2}
|
slidesPerView={recentSlidesPerView}
|
||||||
autoHeight={false}
|
autoHeight={false}
|
||||||
className='w-full'
|
className='w-full'
|
||||||
onSwiper={swiper => {
|
onSwiper={swiper => {
|
||||||
|
|||||||
Reference in new issue
Block a user