UNPKG

cuz

Version:

Front-end modular development kit.

83 lines (64 loc) 2.34 kB
'use strict'; var _objectWithoutProperties = require('babel-runtime/helpers/object-without-properties')['default']; var _extends = require('babel-runtime/helpers/extends')['default']; var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default']; exports.__esModule = true; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames); var _reactBootstrap = require('react-bootstrap'); var CategoryGroup = _react2['default'].createClass({ displayName: 'CategoryGroup', propTypes: { children: _react2['default'].PropTypes.any, className: _react2['default'].PropTypes.string, onSelect: _react2['default'].PropTypes.func, onHover: _react2['default'].PropTypes.func, level: _react2['default'].PropTypes.number, activeIndex: _react2['default'].PropTypes.number, triggerType: _react2['default'].PropTypes.string }, getInitialState: function getInitialState() { return { activeIndex: this.props.activeIndex || 0, focus: false }; }, handleActive: function handleActive(index, focus) { this.setState({ activeIndex: index, focus: focus }); }, renderItem: function renderItem(child, index) { var _props = this.props; var level = _props.level; var onSelect = _props.onSelect; var triggerType = _props.triggerType; var onHover = _props.onHover; return _react.cloneElement(child, { index: index, level: level, triggerType: triggerType, onSelect: onSelect, onHover: onHover, focus: this.state.focus, active: this.state.activeIndex === index, handleActive: this.handleActive }); }, render: function render() { var _props2 = this.props; var className = _props2.className; var children = _props2.children; var props = _objectWithoutProperties(_props2, ['className', 'children']); return _react2['default'].createElement( 'ul', _extends({ className: _classnames2['default']('category-group', className) }, props), _reactBootstrap.utils.ValidComponentChildren.map(this.props.children, this.renderItem) ); } }); exports['default'] = CategoryGroup; module.exports = exports['default'];