mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-01 07:01:12 +00:00
['Files' page] 'New Library': added 'New Library' dropdown menu to some headings('My Libraries' & departments) (#6169)
This commit is contained in:
70
frontend/src/components/toolbar/single-dropdown-toolbar.js
Normal file
70
frontend/src/components/toolbar/single-dropdown-toolbar.js
Normal file
@@ -0,0 +1,70 @@
|
||||
import React, { Fragment } from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { Dropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap';
|
||||
|
||||
const propTypes = {
|
||||
opList: PropTypes.array.isRequired
|
||||
};
|
||||
|
||||
class SingleDropdownToolbar extends React.Component {
|
||||
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {
|
||||
isDropdownMenuOpen: false
|
||||
};
|
||||
}
|
||||
|
||||
toggleDropdownMenu = () => {
|
||||
this.setState({isDropdownMenuOpen: !this.state.isDropdownMenuOpen});
|
||||
};
|
||||
|
||||
onDropdownToggleKeyDown = (e) => {
|
||||
if (e.key == 'Enter' || e.key == 'Space') {
|
||||
this.toggleDropdownMenu();
|
||||
}
|
||||
};
|
||||
|
||||
onMenuItemKeyDown = (item, e) => {
|
||||
if (e.key == 'Enter' || e.key == 'Space') {
|
||||
item.onClick();
|
||||
}
|
||||
};
|
||||
|
||||
render() {
|
||||
const { opList } = this.props;
|
||||
|
||||
return (
|
||||
<Fragment>
|
||||
<Dropdown isOpen={this.state.isDropdownMenuOpen} toggle={this.toggleDropdownMenu}>
|
||||
<DropdownToggle
|
||||
tag="i"
|
||||
role="button"
|
||||
className="sf3-font-drop-down sf3-font ml-1 sf-dropdown-toggle"
|
||||
onClick={this.toggleDropdownMenu}
|
||||
onKeyDown={this.onDropdownToggleKeyDown}
|
||||
data-toggle="dropdown"
|
||||
>
|
||||
</DropdownToggle>
|
||||
<DropdownMenu style={{'width': '200px'}}>
|
||||
{opList.map((item, index)=> {
|
||||
if (item == 'Divider') {
|
||||
return <DropdownItem key={index} divider />;
|
||||
} else {
|
||||
return (
|
||||
<DropdownItem key={index} onClick={item.onClick} onKeyDown={this.onMenuItemKeyDown.bind(this, item)}>
|
||||
{item.text}
|
||||
</DropdownItem>
|
||||
);
|
||||
}
|
||||
})}
|
||||
</DropdownMenu>
|
||||
</Dropdown>
|
||||
</Fragment>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
SingleDropdownToolbar.propTypes = propTypes;
|
||||
|
||||
export default SingleDropdownToolbar;
|
Reference in New Issue
Block a user