import React from 'react'; import PropTypes from 'prop-types'; import moment from 'moment'; import NodeMenuControl from '../menu-component/node-menu-control'; moment.locale(window.app.config.lang); const propTypes = { isItemFrezeed: PropTypes.bool.isRequired, isFirstItem: PropTypes.bool.isRequired, item: PropTypes.object.isRequired, currentItem: PropTypes.object.isRequired, onMenuControlClick: PropTypes.func.isRequired, onHistoryItemClick: PropTypes.func.isRequired, }; class HistoryListItem extends React.Component { constructor(props) { super(props); this.state = { isShowOperationIcon: false }; } onMouseEnter = () => { if (!this.props.isItemFrezeed) { this.setState({isShowOperationIcon: true}); } } onMouseLeave = () => { if (!this.props.isItemFrezeed) { this.setState({isShowOperationIcon: false}); } } onItemClick = () => { if (this.props.item.commit_id === this.props.currentItem.commit_id) { return; } this.setState({isShowOperationIcon: false}); //restore to default state this.props.onHistoryItemClick(this.props.item); } onMenuControlClick = (e) => { e.nativeEvent.stopImmediatePropagation(); this.props.onMenuControlClick(e, this.props.item , this.props.isFirstItem); } render() { let item = this.props.item; let offset = moment.parseZone(item.ctime).utcOffset(); let time = moment(item.ctime).add(offset,'m').format('MMMDo Ah:mm'); let isHigtlightItem = false; if (this.props.item && this.props.currentItem) { isHigtlightItem = this.props.item.commit_id === this.props.currentItem.commit_id; } return (