import React from 'react'; import PropTypes from 'prop-types'; import { Dropdown, DropdownMenu, DropdownToggle, DropdownItem } from 'reactstrap'; import { gettext } from '../utils/constants'; import '../css/view-modes.css'; const propTypes = { currentViewMode: PropTypes.string.isRequired, switchViewMode: PropTypes.func.isRequired }; class ViewModes extends React.Component { constructor(props) { super(props); this.state = { isDropdownMenuOpen: false }; } componentDidMount() { document.addEventListener('keydown', this.onKeyDown); } componentWillUnmount() { document.removeEventListener('keydown', this.onKeyDown); } onKeyDown = (event) => { if (event.shiftKey && event.keyCode === 49) { this.props.switchViewMode('list'); } else if (event.shiftKey && event.keyCode === 50) { this.props.switchViewMode('grid'); } }; toggleDropdownMenu = () => { this.setState({ isDropdownMenuOpen: !this.state.isDropdownMenuOpen }); }; render() { const { isDropdownMenuOpen } = this.state; const { currentViewMode } = this.props; const options = [ { 'icon': 'list-view', 'text': gettext('List view'), 'value': 'list', 'shortcut': 'Shift 1' }, { 'icon': 'grid-view', 'text': gettext('Grid view'), 'value': 'grid', 'shortcut': 'Shift 2' } ]; return ( {options.map((item, index) => { return (
{currentViewMode === item.value && } {item.text} {item.shortcut}
); })}
); } } ViewModes.propTypes = propTypes; export default ViewModes;