UNPKG

@braineet/ui

Version:

Braineet design system

67 lines (66 loc) 2.83 kB
"use strict"; exports.__esModule = true; exports.RenderOptions = void 0; var _react = _interopRequireDefault(require("react")); var _select = require("ariakit/select"); var _styles = require("../checkbox/item/styles"); var _combobox = require("../combobox"); var _icon = _interopRequireDefault(require("../icon")); var _option = require("../option"); var _text = _interopRequireDefault(require("../text")); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } var RenderOptions = exports.RenderOptions = function RenderOptions(_ref) { var value = _ref.value, options = _ref.options, multiple = _ref.multiple, noResult = _ref.noResult, renderOption = _ref.renderOption, classNames = _ref.classNames; if (options.length === 0) { if (typeof noResult === 'string') return /*#__PURE__*/(0, _jsxRuntime.jsx)(_text.default, { children: noResult }); if (typeof noResult === 'function') return noResult(); return noResult || null; } return options.map(function (option) { return /*#__PURE__*/(0, _jsxRuntime.jsx)(_combobox.BaseComboboxItem, { focusOnHover: true, children: function children(props) { return /*#__PURE__*/(0, _jsxRuntime.jsx)(_option.Option, _extends({ as: _select.SelectItem, value: option.value, className: classNames.optionWrapper, style: option.style, ref: option.ref, leftSection: multiple && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, { children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_styles.CheckboxInput, { checked: value.includes(option.value) // needed to avoid a react warning , onChange: function onChange() {}, type: "checkbox", required: false }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_styles.CheckboxBtn, { children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.default, { name: "tick", size: 16, color: "white" }) })] }) }, !(renderOption && typeof renderOption === 'function') ? option : {}, props, { children: renderOption && typeof renderOption === 'function' ? renderOption({ option: option, selected: option.value === value }) : null }), option.value); } }, option.value); }); }; RenderOptions.defaultProps = { classNames: {} };