cuz
Version:
Front-end modular development kit.
105 lines (86 loc) • 3.03 kB
JavaScript
'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 CategoryItem = _react2['default'].createClass({
displayName: 'CategoryItem',
propTypes: {
children: _react2['default'].PropTypes.any,
className: _react2['default'].PropTypes.string,
onSelect: _react2['default'].PropTypes.func,
onHover: _react2['default'].PropTypes.func,
id: _react2['default'].PropTypes.any,
level: _react2['default'].PropTypes.number,
active: _react2['default'].PropTypes.bool,
handleActive: _react2['default'].PropTypes.func,
index: _react2['default'].PropTypes.number,
triggerType: _react2['default'].PropTypes.string,
onClick: _react2['default'].PropTypes.func,
onMouseEnter: _react2['default'].PropTypes.func,
focus: _react2['default'].PropTypes.bool
},
getDefaultProps: function getDefaultProps() {
return {
active: false
};
},
handleClick: function handleClick(event) {
var _props = this.props;
var level = _props.level;
var id = _props.id;
var children = _props.children;
var onSelect = _props.onSelect;
var handleActive = _props.handleActive;
var index = _props.index;
handleActive(index, true);
onSelect(id, children, level, index, event);
if (this.props.onClick) {
this.props.onClick(event);
}
},
handleEnter: function handleEnter(event) {
var _props2 = this.props;
var id = _props2.id;
var children = _props2.children;
var level = _props2.level;
var handleActive = _props2.handleActive;
var index = _props2.index;
var onHover = _props2.onHover;
var triggerType = _props2.triggerType;
var focus = _props2.focus;
if (triggerType === 'hover' && focus === false) {
handleActive(index, focus);
}
if (onHover) {
onHover(id, children, level, index, event);
}
if (this.props.onMouseEnter) {
this.props.onMouseEnter(event);
}
},
render: function render() {
var _props3 = this.props;
var className = _props3.className;
var children = _props3.children;
var props = _objectWithoutProperties(_props3, ['className', 'children']);
return _react2['default'].createElement(
'li',
_extends({ className: _classnames2['default']('category-group-item', { 'active': this.props.active }, className)
}, props, {
onClick: this.handleClick,
onMouseEnter: this.handleEnter }),
_react2['default'].createElement(
'span',
null,
children
)
);
}
});
exports['default'] = CategoryItem;
module.exports = exports['default'];