mirror of
https://github.com/haiwen/seahub.git
synced 2025-07-16 00:06:11 +00:00
73 lines
2.3 KiB
JavaScript
73 lines
2.3 KiB
JavaScript
import React, { Suspense } from 'react';
|
|
import ReactDom from 'react-dom';
|
|
import { I18nextProvider } from 'react-i18next';
|
|
import i18n from './_i18n/i18n-sdoc-editor';
|
|
import { Utils } from './utils/utils';
|
|
import Loading from './components/loading';
|
|
import SdocEditor from './pages/sdoc/sdoc-editor';
|
|
import { MetadataStatusProvider } from './hooks';
|
|
import { CollaboratorsProvider } from './metadata';
|
|
import { TagsProvider } from './tag/hooks';
|
|
import { SimpleViewer } from '@seafile/sdoc-editor';
|
|
|
|
const { serviceURL, avatarURL, siteRoot, lang, mediaUrl, isPro } = window.app.config;
|
|
const { username, name } = window.app.userInfo;
|
|
const {
|
|
repoID, repoName, repoEncrypted, parentDir, filePerm,
|
|
docPath, docName, docUuid, seadocAccessToken, seadocServerUrl, assetsUrl,
|
|
isSdocRevision, isPublished, originFilename, revisionCreatedAt, originFileVersion,
|
|
originFilePath, originDocUuid, revisionId, isFreezed, mobileLogin, isRepoAdmin
|
|
} = window.app.pageOptions;
|
|
|
|
window.seafile = {
|
|
repoID,
|
|
isRepoAdmin,
|
|
docPath,
|
|
docName,
|
|
docUuid,
|
|
isOpenSocket: true,
|
|
serviceUrl: serviceURL,
|
|
accessToken: seadocAccessToken,
|
|
sdocServer: seadocServerUrl,
|
|
name,
|
|
username,
|
|
avatarURL,
|
|
siteRoot,
|
|
docPerm: filePerm,
|
|
historyURL: Utils.generateHistoryURL(siteRoot, repoID, docPath),
|
|
parentFolderURL: `${siteRoot}library/${repoID}/${Utils.encodePath(repoName + parentDir)}`,
|
|
assetsUrl,
|
|
isShowInternalLink: true,
|
|
isStarIconShown: true, // for star/unstar
|
|
isSdocRevision,
|
|
isPublished,
|
|
originFilename,
|
|
originFileVersion,
|
|
originFilePath,
|
|
originDocUuid,
|
|
revisionCreatedAt,
|
|
lang,
|
|
revisionId,
|
|
mediaUrl,
|
|
isFreezed,
|
|
isPro: isPro === 'True' ? true : false,
|
|
mobileLogin,
|
|
};
|
|
|
|
const repoInfo = { encrypted: repoEncrypted, permission: filePerm, is_admin: isRepoAdmin };
|
|
|
|
ReactDom.render(
|
|
<I18nextProvider i18n={ i18n } >
|
|
<Suspense fallback={<Loading />}>
|
|
<MetadataStatusProvider repoID={repoID} currentRepoInfo={repoInfo}>
|
|
<CollaboratorsProvider repoID={repoID}>
|
|
<TagsProvider repoID={repoID} repoInfo={repoInfo}>
|
|
{filePerm === 'rw' ? <SdocEditor /> : <SimpleViewer />}
|
|
</TagsProvider>
|
|
</CollaboratorsProvider>
|
|
</MetadataStatusProvider>
|
|
</Suspense>
|
|
</I18nextProvider>,
|
|
document.getElementById('wrapper')
|
|
);
|