import React from 'react'; import ReactDom from 'react-dom'; import classnames from 'classnames'; import { Button } from 'reactstrap'; import { DiffViewer } from '@seafile/sdoc-editor'; import { gettext } from '../../utils/constants'; import Loading from '../../components/loading'; import GoBack from '../../components/common/go-back'; import { Utils } from '../../utils/utils'; import { seafileAPI } from '../../utils/seafile-api'; import '../../css/layout.css'; import '../../css/sdoc-revision.css'; const { serviceURL, avatarURL, siteRoot } = window.app.config; const { username, name } = window.app.pageOptions; const { repoID, fileName, filePath, docUuid, assetsUrl, fileDownloadLink, originFileDownloadLink, isPublished } = window.sdocRevision; window.seafile = { repoID, docPath: filePath, docName: fileName, docUuid, isOpenSocket: false, serviceUrl: serviceURL, name, username, avatarURL, siteRoot, assetsUrl, }; class SdocRevision extends React.Component { constructor(props) { super(props); this.state = { isLoading: true, errorMessage: '', revisionContent: '', originContent: '', }; } componentDidMount() { fetch(fileDownloadLink).then(res => { return res.json(); }).then(revisionContent => { fetch(originFileDownloadLink).then(res => { return res.json(); }).then(originContent => { this.setState({ revisionContent, originContent, isLoading: false, errorMessage: '' }); }).catch(error => { const errorMessage = Utils.getErrorMsg(error, true); this.setState({ isLoading: false, errorMessage }); }); }).catch(error => { const errorMessage = Utils.getErrorMsg(error, true); this.setState({ isLoading: false, errorMessage }); }); } publishRevision = (event) => { event.stopPropagation(); event.nativeEvent.stopImmediatePropagation(); seafileAPI.sdocPublishRevision(docUuid).then(res => { console.log(res) }).catch(error => { console.log(error); }); } renderContent = () => { const { isLoading, errorMessage, revisionContent, originContent } = this.state; if (isLoading) { return (
); } if (errorMessage) { return (
{gettext(errorMessage)}
); } return ( ); } render() { return (
{fileName}
{!isPublished && ( )}
{this.renderContent()}
); } } ReactDom.render(, document.getElementById('wrapper'));