ndla-ui
Version:
UI component library for NDLA.
96 lines (77 loc) • 2.69 kB
JavaScript
'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;