import React from 'react'; import PropTypes from 'prop-types'; import { serviceUrl, gettext } from '../../utils/constants'; import OperationGroup from '../dirent-operation/operation-group'; const propTypes = { isItemFreezed: PropTypes.bool.isRequired, dirent: PropTypes.object.isRequired, onItemClick: PropTypes.func.isRequired, onItemMenuShow: PropTypes.func.isRequired, onItemMenuHide: PropTypes.func.isRequired, onItemDelete: PropTypes.func.isRequired, onItemStarred: PropTypes.func.isRequired, onItemDownload: PropTypes.func.isRequired, }; class DirentListItem extends React.Component { constructor(props) { super(props); this.state = { isOperationShow: false, highlight: false }; } //UI Interactive onMouseEnter = () => { if (!this.props.isItemFreezed) { this.setState({ highlight: true, isOperationShow: true, }); } } onMouseOver = () => { if (!this.props.isItemFreezed) { this.setState({ highlight: true, isOperationShow: true, }); } } onMouseLeave = () => { if (!this.props.isItemFreezed) { this.setState({ highlight: false, isOperationShow: false, }); } } onItemMenuShow = () => { this.props.onItemMenuShow(); } onItemMenuHide = () => { this.setState({ isOperationShow: false, highlight: '' }); this.props.onItemMenuHide(); } //buiness handler onItemSelected = () => { //todos; } onItemStarred = () => { this.props.onItemStarred(this.props.dirent); } onItemClick = () => { this.props.onItemClick(this.props.dirent); } onItemDownload = () => { this.props.onItemDownload(this.props.dirent); } onItemDelete = () => { this.props.onItemDelete(this.props.dirent); } render() { let { dirent } = this.props; return (