import React from 'react';
import ReactDOM from 'react-dom';
import { seafileAPI } from './utils/seafile-api';
import { Utils } from './utils/utils';
import { serviceURL, mediaUrl } from './utils/constants';
import SharedFileView from './components/shared-file-view/shared-file-view';
import SharedFileViewTip from './components/shared-file-view/shared-file-view-tip';
import Loading from './components/loading';
import MarkdownViewer from '@seafile/seafile-editor/dist/viewer/markdown-viewer';
import toaster from './components/toast';
const { repoID, sharedToken, rawPath, err } = window.shared.pageOptions;
class SharedFileViewMarkdown extends React.Component {
render() {
return } />;
}
}
class FileContent extends React.Component {
constructor(props) {
super(props);
this.state = {
markdownContent: '',
loading: !err
};
}
componentDidMount() {
seafileAPI.getFileContent(rawPath).then((res) => {
this.setState({
markdownContent: res.data,
loading: false
});
}).catch(error => {
let errMessage = Utils.getErrorMsg(error);
toaster.danger(errMessage);
});
}
changeImageURL = (innerNode) => {
if (innerNode.type == 'image') {
let imageUrl = innerNode.data.src;
const re = new RegExp(serviceURL + '/lib/' + repoID +'/file.*raw=1');
// different repo
if (!re.test(imageUrl)) {
return;
}
// get image path
let imagePath = imageUrl.substring(serviceURL.length);
let index = imagePath.indexOf('/file');
let index2 = imagePath.indexOf('?');
imagePath = imagePath.substring(index + 5, index2);
// change image url
innerNode.data.src = serviceURL + '/view-image-via-share-link/?token=' + sharedToken + '&path=' + Utils.encodePath(imagePath);
}
return innerNode;
}
modifyValueBeforeRender = (value) => {
return Utils.changeMarkdownNodes(value, this.changeImageURL);
}
render() {
if (err) {
return ;
}
if (this.state.loading) {
return ;
}
return (
);
}
}
ReactDOM.render (
,
document.getElementById('wrapper')
);