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 FileInfo from '@seafile/seafile-editor/dist/components/topbarcomponent/file-info'; const propTypes = { hasDraft: PropTypes.bool.isRequired, isDraft: PropTypes.bool.isRequired, editorUtilities: PropTypes.object.isRequired, collabUsers: PropTypes.array.isRequired, fileInfo: PropTypes.object.isRequired, fileTagList: PropTypes.array.isRequired, relatedFiles: PropTypes.array.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, }; class MarkdownViewerToolbar extends React.Component { constructor(props) { super(props); } renderFirstToolbar() { 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.collabUsers.length > 0 && } { this.props.commentsNumber > 0 ? : } { (!this.props.hasDraft && this.props.fileInfo.permission === 'rw')? : null } { this.props.showFileHistory && }
); } renderSecondToolbar() { const { relatedFiles, fileTagList } = this.props; const openDialogs = this.props.openDialogs; let relatedFileString = ''; if (relatedFiles) { const length = relatedFiles.length; if (length === 1) relatedFileString = gettext('Related file'); else if (length > 1) relatedFileString = gettext('Related files'); } return(
{(fileTagList) && (fileTagList.length > 0 ? : {gettext('No tags')} )} {relatedFiles &&
{relatedFiles.length === 0 ? {gettext('No related files')}: {relatedFiles.length}{' '}{relatedFileString} {gettext('Edit')} }
}
); } render() { return (
{this.renderFirstToolbar()} {this.renderSecondToolbar()}
); } } MarkdownViewerToolbar.propTypes = propTypes; export default MarkdownViewerToolbar;