@braineet/ui
Version:
Braineet design system
68 lines (67 loc) • 2.92 kB
JavaScript
;
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(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
var 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);
});
};
exports.RenderOptions = RenderOptions;
RenderOptions.defaultProps = {
classNames: {}
};