UNPKG

@findify/react-components

Version:
58 lines (51 loc) 2.79 kB
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } /** * @module components/Dropdown */ import Swiper from "../../../components/Swiper"; import ProductCard from "../../../components/Cards/Product"; import Text from "../../../components/Text"; import useColumns from "../../../helpers/useColumns"; import { useItems } from '@findify/react-connect'; import useScrollOnChange from "../../../helpers/useScrollOnChange"; import { jsx as _jsx } from "react/jsx-runtime"; import { Fragment as _Fragment } from "react/jsx-runtime"; import { jsxs as _jsxs } from "react/jsx-runtime"; var styles = { "title": "findify-layouts--recommendation--slider__title" }; var getSliderOptions = function getSliderOptions(config) { var columns = useColumns(config.getIn(['breakpoints', 'grid'])); return { spaceBetween: 12, slidesPerView: 12 / Number(columns) }; }; export default (function (_ref) { var _ref$theme = _ref.theme, theme = _ref$theme === void 0 ? styles : _ref$theme; var _useItems = useItems(), items = _useItems.items, config = _useItems.config; var options = getSliderOptions(config); useScrollOnChange(items); if (!(items !== null && items !== void 0 && items.size)) return null; return /*#__PURE__*/_jsxs(_Fragment, { children: [/*#__PURE__*/_jsx(Text, { title: true, component: "p", className: theme.title, children: config.get('title') }), /*#__PURE__*/_jsx(Swiper, _objectSpread(_objectSpread({}, options), {}, { slot: config.get('slot'), children: items.map(function (item) { return /*#__PURE__*/_jsx(ProductCard, { item: item, config: config.get('product') }, item.hashCode()); }).toArray() }))] }); });