var React = require('react'); var logger = require('../../util/logger'); var AppIcon = require('../common/app-icon.js'); var MIN_CLICK_DELTATIME = 2000; module.exports = React.createClass({ getInitialState: function() { return { lastClickTimestamp: 0 }; }, propTypes: { item: React.PropTypes.object.isRequired, itemPath: React.PropTypes.oneOfType([ React.PropTypes.string, React.PropTypes.arrayOf(React.PropTypes.number) ]).isRequired, onItemClick: React.PropTypes.func.isRequired, }, _onItemClick: function(evt) { var clickDeltaTime = Date.now() - this.state.lastClickTimestamp; if( clickDeltaTime < MIN_CLICK_DELTATIME ) { logger.debug('Item "%s" clicked within %sms. No action.', this.props.itemPath, MIN_CLICK_DELTATIME); return; } evt.preventDefault(); this.setState({ lastClickTimestamp: Date.now() }); this.props.onItemClick(evt, this.props.itemPath, this.props.item); }, render: function() { return (
  • {this.props.item.label}
  • ); } });