dbl-components
Version:
Framework based on bootstrap 5
41 lines (35 loc) • 1.11 kB
JavaScript
import React from "react";
import { Splide, SplideSlide } from '@splidejs/react-splide';
import Container from "./container";
export default class SlideContainer extends Container {
static jsClass = 'SlideContainer';
static defaultProps = {
...Container.defaultProps,
fullWidth: true,
slider: {
options: {
perPage: 1,
rewind: true
}
}
}
content(children = this.props.children) {
const attrs = this.props.slider;
const arrChildren = [children].flat();
if (arrChildren.length <= attrs.options.perPage) {
Object.assign(attrs.options, {
arrows: false,
pagination: false,
drag: false,
});
}
const mapSlides = ([i, c]) =>
!!c && React.createElement(SplideSlide, { key: i }, c);
return !!this.breakpoint
? React.createElement(Splide,
{ ...attrs, destroy: 'completely', key: this.name + ';perPage=' + attrs.options.perPage },
...Object.entries(arrChildren).map(mapSlides).filter(c => !!c)
)
: this.waitBreakpoint;
}
}