From 0d1445f16328323a7dc2764fd1190789bb6b54d1 Mon Sep 17 00:00:00 2001 From: Alexey Safronov Date: Fri, 23 Sep 2022 18:36:45 +0300 Subject: [PATCH] Web: Editor: Switched to DocumentEditor component --- .../editor/src/client/components/Editor.js | 77 +++++++++++-------- packages/editor/src/server/lib/template.js | 2 +- 2 files changed, 44 insertions(+), 35 deletions(-) diff --git a/packages/editor/src/client/components/Editor.js b/packages/editor/src/client/components/Editor.js index 3e6a8ae7ad..3f8a610244 100644 --- a/packages/editor/src/client/components/Editor.js +++ b/packages/editor/src/client/components/Editor.js @@ -21,6 +21,7 @@ import withDialogs from "../helpers/withDialogs"; import { canConvert } from "../helpers/utils"; import { assign } from "@docspace/common/utils"; import toastr from "@docspace/components/toast/toastr"; +import { DocumentEditor } from "@onlyoffice/document-editor-react"; toast.configure(); @@ -54,6 +55,9 @@ let documentIsReady = false; let docSaved = null; let docTitle = null; let docEditor; +let newConfig; +let documentserverUrl = "http://192.168.31.38:8085"; //TODO: change to backend url +let editorId = "docspace_editor"; function Editor({ config, @@ -97,33 +101,34 @@ function Editor({ }, [mfReady, error]); useEffect(() => { - if (config) { - document.getElementById("scripDocServiceAddress").onload = onLoad(); - setDocumentTitle(config?.document?.title); + if (!config) return; - if (isIOS && deviceType === "tablet") { - const vh = window.innerHeight * 0.01; - document.documentElement.style.setProperty("--vh", `${vh}px`); - } + setDocumentTitle(config?.document?.title); - if ( - !view && - fileInfo && - fileInfo.canWebRestrictedEditing && - fileInfo.canFillForms && - !fileInfo.canEdit - ) { - try { - initForm(); - } catch (err) { - console.error(err); - } - } + if (isIOS && deviceType === "tablet") { + const vh = window.innerHeight * 0.01; + document.documentElement.style.setProperty("--vh", `${vh}px`); + } - if (view) { - config.editorConfig.mode = "view"; + if ( + !view && + fileInfo && + fileInfo.canWebRestrictedEditing && + fileInfo.canFillForms && + !fileInfo.canEdit + ) { + try { + initForm(); + } catch (err) { + console.error(err); } } + + if (view) { + config.editorConfig.mode = "view"; + } + + init(); }, []); useEffect(() => { @@ -342,11 +347,14 @@ function Editor({ }; const onDocumentReady = () => { + docEditor = window.DocEditor.instances[editorId]; documentIsReady = true; if (isSharingAccess) { loadUsersRightsList(docEditor); } + + assign(window, ["ASC", "Files", "Editor", "docEditor"], docEditor); //Do not remove: it's for Back button on Mobile App }; const updateFavorite = (favorite) => { @@ -428,10 +436,8 @@ function Editor({ } }; - const onLoad = () => { + const init = () => { try { - if (!window.DocsAPI) throw new Error("DocsAPI is not defined"); - if (isMobile) { config.type = "mobile"; } @@ -549,14 +555,7 @@ function Editor({ }, }; - const newConfig = Object.assign(config, events); - - docEditor = window.docEditor = window.DocsAPI.DocEditor( - "editor", - newConfig - ); - - assign(window, ["ASC", "Files", "Editor", "docEditor"], docEditor); //Do not remove: it's for Back button on Mobile App + newConfig = Object.assign(config, events); } catch (error) { toastr.error(error.message, null, 0, true); } @@ -564,7 +563,17 @@ function Editor({ return ( -
+ {newConfig && ( + + )} + {sharingDialog} {selectFileDialog} {selectFolderDialog} diff --git a/packages/editor/src/server/lib/template.js b/packages/editor/src/server/lib/template.js index 25bb1448a1..d0a959bcce 100644 --- a/packages/editor/src/server/lib/template.js +++ b/packages/editor/src/server/lib/template.js @@ -22,7 +22,7 @@ export default function template( const editorApiScript = error || !editorUrl ? "" - : ``; + : ``; if (!IS_DEVELOPMENT) { const productionBundleKeys = getScripts(assets);