From 8c1ee5d0b6a9ad51666bad8ec74f3b6784409eb9 Mon Sep 17 00:00:00 2001 From: Vladimir Kharlampidi Date: Wed, 14 Sep 2022 12:40:01 +0300 Subject: [PATCH] chore: move `calcLoopedSlides` to shared --- src/react/loop.js | 22 +--------------------- src/shared/calc-looped-slides.js | 21 +++++++++++++++++++++ src/solid/loop.js | 22 +--------------------- src/vue/loop.js | 23 +---------------------- 4 files changed, 24 insertions(+), 64 deletions(-) create mode 100644 src/shared/calc-looped-slides.js diff --git a/src/react/loop.js b/src/react/loop.js index 31818a765..d487a8116 100644 --- a/src/react/loop.js +++ b/src/react/loop.js @@ -1,25 +1,5 @@ import React from 'react'; -import Swiper from 'swiper'; - -function calcLoopedSlides(slides, swiperParams) { - let slidesPerViewParams = swiperParams.slidesPerView; - if (swiperParams.breakpoints) { - const breakpoint = Swiper.prototype.getBreakpoint(swiperParams.breakpoints); - const breakpointOnlyParams = - breakpoint in swiperParams.breakpoints ? swiperParams.breakpoints[breakpoint] : undefined; - if (breakpointOnlyParams && breakpointOnlyParams.slidesPerView) { - slidesPerViewParams = breakpointOnlyParams.slidesPerView; - } - } - let loopedSlides = Math.ceil(parseFloat(swiperParams.loopedSlides || slidesPerViewParams, 10)); - - loopedSlides += swiperParams.loopAdditionalSlides; - - if (loopedSlides > slides.length && swiperParams.loopedSlidesLimit) { - loopedSlides = slides.length; - } - return loopedSlides; -} +import { calcLoopedSlides } from '../shared/calc-looped-slides.js'; function renderLoop(swiper, slides, swiperParams) { const modifiedSlides = slides.map((child, index) => { diff --git a/src/shared/calc-looped-slides.js b/src/shared/calc-looped-slides.js new file mode 100644 index 000000000..84cb0b437 --- /dev/null +++ b/src/shared/calc-looped-slides.js @@ -0,0 +1,21 @@ +import Swiper from 'swiper'; + +export const calcLoopedSlides = (slides, swiperParams) => { + let slidesPerViewParams = swiperParams.slidesPerView; + if (swiperParams.breakpoints) { + const breakpoint = Swiper.prototype.getBreakpoint(swiperParams.breakpoints); + const breakpointOnlyParams = + breakpoint in swiperParams.breakpoints ? swiperParams.breakpoints[breakpoint] : undefined; + if (breakpointOnlyParams && breakpointOnlyParams.slidesPerView) { + slidesPerViewParams = breakpointOnlyParams.slidesPerView; + } + } + let loopedSlides = Math.ceil(parseFloat(swiperParams.loopedSlides || slidesPerViewParams, 10)); + + loopedSlides += swiperParams.loopAdditionalSlides; + + if (loopedSlides > slides.length && swiperParams.loopedSlidesLimit) { + loopedSlides = slides.length; + } + return loopedSlides; +}; diff --git a/src/solid/loop.js b/src/solid/loop.js index ad58b8081..92c6b00dd 100644 --- a/src/solid/loop.js +++ b/src/solid/loop.js @@ -1,24 +1,4 @@ -import Swiper from 'swiper'; - -function calcLoopedSlides(slides, swiperParams) { - let slidesPerViewParams = swiperParams.slidesPerView; - if (swiperParams.breakpoints) { - const breakpoint = Swiper.prototype.getBreakpoint(swiperParams.breakpoints); - const breakpointOnlyParams = - breakpoint in swiperParams.breakpoints ? swiperParams.breakpoints[breakpoint] : undefined; - if (breakpointOnlyParams && breakpointOnlyParams.slidesPerView) { - slidesPerViewParams = breakpointOnlyParams.slidesPerView; - } - } - let loopedSlides = Math.ceil(parseFloat(swiperParams.loopedSlides || slidesPerViewParams, 10)); - - loopedSlides += swiperParams.loopAdditionalSlides; - - if (loopedSlides > slides.length && swiperParams.loopedSlidesLimit) { - loopedSlides = slides.length; - } - return loopedSlides; -} +import { calcLoopedSlides } from '../shared/calc-looped-slides.js'; function renderLoop(swiper, slides, swiperParams) { const modifiedSlides = slides.map((child, index) => { diff --git a/src/vue/loop.js b/src/vue/loop.js index cb2631d0a..a1e8c5738 100644 --- a/src/vue/loop.js +++ b/src/vue/loop.js @@ -1,26 +1,5 @@ import { h } from 'vue'; -import Swiper from 'swiper'; - -function calcLoopedSlides(slides, swiperParams) { - let slidesPerViewParams = swiperParams.slidesPerView; - if (swiperParams.breakpoints) { - const breakpoint = Swiper.prototype.getBreakpoint(swiperParams.breakpoints); - const breakpointOnlyParams = - breakpoint in swiperParams.breakpoints ? swiperParams.breakpoints[breakpoint] : undefined; - if (breakpointOnlyParams && breakpointOnlyParams.slidesPerView) { - slidesPerViewParams = breakpointOnlyParams.slidesPerView; - } - } - let loopedSlides = Math.ceil(parseFloat(swiperParams.loopedSlides || slidesPerViewParams, 10)); - - loopedSlides += swiperParams.loopAdditionalSlides; - - if (loopedSlides > slides.length && swiperParams.loopedSlidesLimit) { - loopedSlides = slides.length; - } - - return loopedSlides; -} +import { calcLoopedSlides } from '../shared/calc-looped-slides.js'; function renderLoop(swiperRef, slides, swiperParams) { const modifiedSlides = slides.map((child, index) => {