UNPKG

ndla-ui

Version:

UI component library for NDLA.

96 lines (77 loc) 2.69 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _reactBemHelper = require('react-bem-helper'); var _reactBemHelper2 = _interopRequireDefault(_reactBemHelper); var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); var _Filter = require('../Filter'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var searchFilterClasses = (0, _reactBemHelper2.default)({ prefix: 'c-', name: 'search-filter', outputIsString: true }); var valueShape = _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]); var SearchFilter = function SearchFilter(_ref) { var label = _ref.label, options = _ref.options, values = _ref.values, defaultVisibleCount = _ref.defaultVisibleCount, showLabel = _ref.showLabel, hideLabel = _ref.hideLabel, narrowScreenOnly = _ref.narrowScreenOnly, contextFilter = _ref.contextFilter, onChange = _ref.onChange, noFilterSelectedLabel = _ref.noFilterSelectedLabel, children = _ref.children; var modifiers = []; if (narrowScreenOnly) { modifiers.push('narrow-screen-only'); } if (contextFilter) { modifiers.push('context-filter'); } return _react2.default.createElement( 'div', { className: searchFilterClasses('', modifiers) }, _react2.default.createElement(_Filter.FilterList, { options: options, label: label, labelNotVisible: contextFilter, values: values, defaultVisibleCount: defaultVisibleCount, modifiers: !contextFilter ? 'search' : null, showLabel: showLabel, hideLabel: hideLabel, onChange: onChange, alignedGroup: true, noFilterSelectedLabel: noFilterSelectedLabel }), children ); }; SearchFilter.propTypes = { label: _propTypes2.default.string.isRequired, options: _propTypes2.default.arrayOf(_propTypes2.default.shape({ value: valueShape.isRequired, title: _propTypes2.default.string.isRequired, noResults: _propTypes2.default.bool })).isRequired, values: _propTypes2.default.arrayOf(valueShape), defaultVisibleCount: _propTypes2.default.number, onChange: _propTypes2.default.func, showLabel: _propTypes2.default.string, hideLabel: _propTypes2.default.string, narrowScreenOnly: _propTypes2.default.bool, noFilterSelectedLabel: _propTypes2.default.string, contextFilter: _propTypes2.default.bool, children: _propTypes2.default.node }; SearchFilter.defaultProps = { values: [] }; exports.default = SearchFilter;