import React from 'react'; import PropTypes from 'prop-types'; import { gettext } from '../../utils/constants'; import { IconButton, ButtonGroup, CollabUsersButton } from '@seafile/seafile-editor/dist/components/topbarcomponent/editorToolBar'; import { Dropdown, DropdownToggle, DropdownMenu, DropdownItem, Tooltip } from 'reactstrap'; import FileInfo from '@seafile/seafile-editor/dist/components/topbarcomponent/file-info'; const propTypes = { isDocs: PropTypes.bool.isRequired, hasDraft: PropTypes.bool.isRequired, isDraft: PropTypes.bool.isRequired, editorUtilities: PropTypes.object.isRequired, collabUsers: PropTypes.array.isRequired, fileInfo: PropTypes.object.isRequired, toggleShareLinkDialog: PropTypes.func.isRequired, onEdit: PropTypes.func.isRequired, toggleNewDraft: PropTypes.func.isRequired, toggleStar: PropTypes.func.isRequired, backToParentDirectory: PropTypes.func.isRequired, openDialogs: PropTypes.func.isRequired, showFileHistory: PropTypes.bool.isRequired, toggleHistory: PropTypes.func.isRequired, // commentsNumber: PropTypes.number.isRequired, // toggleCommentList: PropTypes.func.isRequired, editorMode: PropTypes.string.isRequired, readOnly: PropTypes.bool.isRequired, contentChanged: PropTypes.bool.isRequired, saving: PropTypes.bool.isRequired, }; const MoreMenuPropTypes = { readOnly: PropTypes.bool.isRequired, openDialogs: PropTypes.func.isRequired, onEdit: PropTypes.func.isRequired, editorMode: PropTypes.string.isRequired } class MoreMenu extends React.PureComponent { constructor(props) { super(props); this.state = { tooltipOpen: false, dropdownOpen:false }; } tooltipToggle = () => { this.setState({ tooltipOpen: !this.state.tooltipOpen }); } dropdownToggle = () => { this.setState({ dropdownOpen:!this.state.dropdownOpen }); } render() { const editorMode = this.props.editorMode; return ( {gettext('More')} {(!this.props.readOnly && editorMode === 'rich') && {gettext('Switch to plain text editor')}} {(!this.props.readOnly && editorMode === 'plain') && {gettext('Switch to rich text editor')}} {(this.props.openDialogs && editorMode === 'rich') && {gettext('Help')} } ); } } MoreMenu.propTypes = MoreMenuPropTypes; class MarkdownViewerToolbar extends React.Component { constructor(props) { super(props); } render() { let { contentChanged, saving } = this.props; if (this.props.editorMode === 'rich') { return (
{(this.props.hasDraft && !this.props.isDraft) &&
{gettext('This file is in draft stage.')} {gettext('View Draft')}
}
{ (!this.props.hasDraft && !this.props.isDraft && this.props.isDocs) && } {this.props.collabUsers.length > 0 && } {/* this.props.commentsNumber > 0 ? : */} { this.props.showFileHistory && } { saving ? : }
); } else if (this.props.editorMode === 'plain') { return (
{this.props.collabUsers.length > 0 && } { saving ? : }
); } } } MarkdownViewerToolbar.propTypes = propTypes; export default MarkdownViewerToolbar;