mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-10 19:29:56 +00:00
Contextmenu improve (#3238)
* add a commen contextmenu component * optimized translate for menu * repair contextmenu bug * optimized share btn show code * repair showShareBtn bug * optimized contextmenu * optimized contextmenu code * complete dirent-item-menu logic * optimized contextmenu code * complete dirent-container-menu logic * complete tree-node-contextmenu logic * delete unnecessary code * optimized contextmenu func * repair bug * optimized code style * optimized code style * add a dirent-none-view for dir-list-view mode * optimized dirent-container-menu&dirent-item-menu * add select-item contextmenu * repair rebase bug
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import listener from '../context-menu/globalEventListener';
|
||||
import { Dropdown, DropdownMenu, DropdownToggle, DropdownItem } from 'reactstrap';
|
||||
import { gettext } from '../../utils/constants';
|
||||
|
||||
@@ -8,9 +9,6 @@ const propTypes = {
|
||||
onMenuItemClick: PropTypes.func.isRequired,
|
||||
onFreezedItem: PropTypes.func.isRequired,
|
||||
onUnFreezedItem: PropTypes.func.isRequired,
|
||||
registerHandlers: PropTypes.func,
|
||||
unregisterHandlers: PropTypes.func,
|
||||
appMenuType: PropTypes.oneOf(['list_view_contextmenu', 'item_contextmenu', 'tree_contextmenu', 'item_op_menu']),
|
||||
};
|
||||
|
||||
class TreeNodeMenu extends React.Component {
|
||||
@@ -26,11 +24,22 @@ class TreeNodeMenu extends React.Component {
|
||||
componentDidMount() {
|
||||
let menuList = this.caculateMenuList();
|
||||
this.setState({menuList: menuList});
|
||||
this.listenerId = listener.register(this.onShowMenu, this.onHideMenu);
|
||||
}
|
||||
|
||||
componentWillReceiveProps(nextProps) {
|
||||
if (nextProps.appMenuType !== 'item_op_menu') {
|
||||
this.setState({isItemMenuShow: false});
|
||||
componentWillUnmount () {
|
||||
if (this.listenerId) {
|
||||
listener.unregister(this.listenerId);
|
||||
}
|
||||
}
|
||||
|
||||
onShowMenu = () => {
|
||||
// nothing todo
|
||||
}
|
||||
|
||||
onHideMenu = () => {
|
||||
if (this.state.isItemMenuShow) {
|
||||
this.setState({isItemMenuShow: false});
|
||||
this.props.onUnFreezedItem();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user