import React, { Fragment } from 'react'; import PropTypes from 'prop-types'; import { DropdownToggle, Dropdown, DropdownMenu, DropdownItem } from 'reactstrap'; import { gettext, siteRoot } from '../../utils/constants'; import { Utils } from '../../utils/utils'; import ModalPotal from '../modal-portal'; import ShareDialog from '../dialog/share-dialog'; import EditFileTagDialog from '../dialog/edit-filetag-dialog'; const propTypes = { path: PropTypes.string.isRequired, repoID: PropTypes.string.isRequired, repoTags: PropTypes.array.isRequired, userPerm: PropTypes.string.isRequired, repoEncrypted: PropTypes.bool.isRequired, enableDirPrivateShare: PropTypes.bool.isRequired, isGroupOwnedRepo: PropTypes.bool.isRequired, filePermission: PropTypes.string, fileTags: PropTypes.array.isRequired, onFileTagChanged: PropTypes.func.isRequired, showShareBtn: PropTypes.bool.isRequired, dirent: PropTypes.object, }; class ViewFileToolbar extends React.Component { constructor(props) { super(props); this.state = { isMoreMenuShow: false, isShareDialogShow: false, isEditTagDialogShow: false, }; } onEditClick = (e) => { e.preventDefault(); let { path, repoID } = this.props; let url = siteRoot + 'lib/' + repoID + '/file' + Utils.encodePath(path) + '?mode=edit'; window.open(url); }; toggleMore = () => { this.setState({isMoreMenuShow: !this.state.isMoreMenuShow}); }; onShareToggle = () => { this.setState({isShareDialogShow: !this.state.isShareDialogShow}); }; onEditFileTagToggle = () => { this.setState({isEditTagDialogShow: !this.state.isEditTagDialogShow}); }; onHistoryClick = () => { let historyUrl = siteRoot + 'repo/file_revisions/' + this.props.repoID + '/?p=' + Utils.encodePath(this.props.path); location.href = historyUrl; }; render() { let { filePermission } = this.props; return (
{(filePermission === 'rw' || filePermission === 'cloud-edit') && ( )} {filePermission === 'rw' && ( {gettext('More')} {this.props.showShareBtn && {gettext('Share')} } {gettext('Tags')} {gettext('History')} )}
{this.state.isShareDialogShow && ( )} {this.state.isEditTagDialogShow && ( )}
); } } ViewFileToolbar.propTypes = propTypes; export default ViewFileToolbar;