UNPKG

linkmore-design

Version:

🌈 πŸš€lmη»„δ»ΆεΊ“γ€‚πŸš€

71 lines (70 loc) β€’ 2.58 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _reactSlick = _interopRequireDefault(require("@ant-design/react-slick")); var _classnames = _interopRequireDefault(require("classnames")); var React = _interopRequireWildcard(require("react")); var _configProvider = require("../config-provider"); const Carousel = /*#__PURE__*/React.forwardRef(({ dots = true, arrows = false, draggable = false, dotPosition = 'bottom', vertical = dotPosition === 'left' || dotPosition === 'right', ...props }, ref) => { const { getPrefixCls, direction } = React.useContext(_configProvider.ConfigContext); const slickRef = React.useRef(); const goTo = (slide, dontAnimate = false) => { slickRef.current.slickGoTo(slide, dontAnimate); }; React.useImperativeHandle(ref, () => ({ goTo, autoPlay: slickRef.current.innerSlider.autoPlay, innerSlider: slickRef.current.innerSlider, prev: slickRef.current.slickPrev, next: slickRef.current.slickNext }), [slickRef.current]); const prevCount = React.useRef(React.Children.count(props.children)); React.useEffect(() => { if (prevCount.current !== React.Children.count(props.children)) { goTo(props.initialSlide || 0, false); prevCount.current = React.Children.count(props.children); } }, [props.children]); const newProps = { vertical, ...props }; if (newProps.effect === 'fade') { newProps.fade = true; } const prefixCls = getPrefixCls('carousel', newProps.prefixCls); const dotsClass = 'slick-dots'; const enableDots = !!dots; const dsClass = (0, _classnames.default)(dotsClass, `${dotsClass}-${dotPosition}`, typeof dots === 'boolean' ? false : dots?.className); const className = (0, _classnames.default)(prefixCls, { [`${prefixCls}-rtl`]: direction === 'rtl', [`${prefixCls}-vertical`]: dotPosition === 'left' || dotPosition === 'right' }); return /*#__PURE__*/React.createElement("div", { className: className }, /*#__PURE__*/React.createElement(_reactSlick.default, (0, _extends2.default)({ ref: slickRef }, newProps, { dots: enableDots, dotsClass: dsClass, arrows: arrows, draggable: draggable }))); }); var _default = Carousel; exports.default = _default;