@findify/react-components
Version:
Findify react UI components
58 lines (51 loc) • 2.79 kB
JavaScript
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()
}))]
});
});