import React from 'react'; import ReactDOM from 'react-dom'; import Account from './components/common/account'; import { gettext, siteRoot, mediaUrl, logoPath, logoWidth, logoHeight, siteTitle } from './utils/constants'; import { Button } from 'reactstrap'; import { seafileAPI } from './utils/seafile-api'; import { Utils } from './utils/utils'; import Loading from './components/loading'; import SaveSharedFileDialog from './components/dialog/save-shared-file-dialog'; import toaster from './components/toast'; import watermark from 'watermark-dom'; import MarkdownViewer from '@seafile/seafile-editor/dist/viewer/markdown-viewer'; import './css/shared-file-view.css'; import './assets/css/fa-solid.css'; import './assets/css/fa-regular.css'; import './assets/css/fontawesome.css'; let loginUser = window.app.pageOptions.name; const { repoID, sharedToken, trafficOverLimit, fileName, fileSize, rawPath, sharedBy, siteName, enableWatermark, download } = window.shared.pageOptions; class SharedFileViewMarkdown extends React.Component { constructor(props) { super(props); this.state = { markdownContent: '', loading: true, showSaveSharedFileDialog: false, }; } handleSaveSharedFileDialog = () => { this.setState({ showSaveSharedFileDialog: true }); } toggleCancel = () => { this.setState({ showSaveSharedFileDialog: false }); } handleSaveSharedFile = () => { toaster.success(gettext('Successfully saved'), { duration: 3 }); } componentDidMount() { seafileAPI.getFileContent(rawPath).then((res) => { this.setState({ markdownContent: res.data, loading: false }); }); if (trafficOverLimit == "True") { toaster.danger(gettext('File download is disabled: the share link traffic of owner is used up.'), { duration: 3 }); } } render() { if (this.state.loading) { return } return (
logo { loginUser && }

{fileName}

{gettext('Shared by:')}{' '}{sharedBy}

{download &&
{(loginUser && loginUser !== sharedBy) && }{' '} {(trafficOverLimit === "False") && }
}
{this.state.showSaveSharedFileDialog && }
); } } if (enableWatermark) { let watermark_txt; if (loginUser) { watermark_txt = siteName + " " + loginUser; } else { watermark_txt = gettext("Anonymous User"); } watermark.init({ watermark_txt: watermark_txt, watermark_alpha: 0.075 }); } ReactDOM.render ( , document.getElementById('wrapper') );