Web: Doceditor: fixed open editor

This commit is contained in:
Artem Tarasov 2022-03-20 23:40:26 +03:00
parent 53842400ce
commit 5753ec3417
4 changed files with 22 additions and 9 deletions

View File

@ -117,10 +117,11 @@ function Editor({
actionLink, actionLink,
error, error,
needLoader, needLoader,
isReadyFilesRemote,
}) { }) {
const [isLoaded, setIsLoaded] = useState(false); const [isLoaded, setIsLoaded] = useState(false);
const [documentTitle, setNewDocumentTitle] = useState("Loading..."); const [documentTitle, setNewDocumentTitle] = useState("Loading...");
useFilesUtils(); useFilesUtils(isReadyFilesRemote);
const { t } = useTranslation(); const { t } = useTranslation();
const [ const [
@ -137,7 +138,10 @@ function Editor({
onSDKRequestCompareFile, onSDKRequestCompareFile,
] = useSelectFileDialog(docEditor, t); ] = useSelectFileDialog(docEditor, t);
const [selectFolderDialog, onSDKRequestSaveAs] = useSelectFolderDialog(t); const [selectFolderDialog, onSDKRequestSaveAs] = useSelectFolderDialog(
t,
docEditor
);
useEffect(() => { useEffect(() => {
if (error) { if (error) {

View File

@ -1,13 +1,15 @@
import React, { Suspense } from "react"; import React, { Suspense, useState, useEffect } from "react";
import { hydrate } from "react-dom"; import { hydrate } from "react-dom";
import { registerSW } from "@appserver/common/sw/helper"; import { registerSW } from "@appserver/common/sw/helper";
import App from "../App.js"; import App from "../App.js";
import { useSSR } from "react-i18next"; import { useSSR } from "react-i18next";
import "../i18n"; import "../i18n";
import { FILES_SCOPE } from "../helpers/constants.js";
const propsObj = window.__ASC_INITIAL_STATE__; const propsObj = window.__ASC_INITIAL_STATE__;
const initialI18nStore = window.initialI18nStore; const initialI18nStore = window.initialI18nStore;
const initialLanguage = window.initialLanguage; const initialLanguage = window.initialLanguage;
const remoteScript = document.getElementById(FILES_SCOPE);
delete window.__ASC_INITIAL_STATE__; delete window.__ASC_INITIAL_STATE__;
delete window.initialI18nStore; delete window.initialI18nStore;
@ -17,10 +19,16 @@ const stateJS = document.getElementById("__ASC_INITIAL_STATE__");
stateJS.parentNode.removeChild(stateJS); stateJS.parentNode.removeChild(stateJS);
const AppWrapper = () => { const AppWrapper = () => {
const [isReadyFilesRemote, setIsReadyFilesRemote] = useState(false);
useSSR(initialI18nStore, initialLanguage); useSSR(initialI18nStore, initialLanguage);
useEffect(() => {
remoteScript.onload = () => setIsReadyFilesRemote(true);
}, []);
return ( return (
<Suspense fallback={<div />}> <Suspense fallback={<div />}>
<App {...propsObj} /> <App {...propsObj} isReadyFilesRemote={isReadyFilesRemote} />
</Suspense> </Suspense>
); );
}; };

View File

@ -1,9 +1,9 @@
import React from "react"; import React from "react";
import { loadComponent } from "../components/dynamic"; import { loadComponent } from "../components/dynamic";
import { FILES_SCOPE } from "../helpers/constants"; import { FILES_SCOPE } from "../helpers/constants";
function useFilesUtils() { function useFilesUtils(isReadyFilesRemote) {
React.useEffect(() => { React.useEffect(() => {
if (document.getElementById(FILES_SCOPE)) { if (isReadyFilesRemote) {
loadComponent(FILES_SCOPE, "./utils", "filesUtils")(); loadComponent(FILES_SCOPE, "./utils", "filesUtils")();
} }
}, []); }, []);

View File

@ -6,7 +6,7 @@ import Checkbox from "@appserver/components/checkbox";
import { StyledSelectFolder } from "../StyledEditor"; import { StyledSelectFolder } from "../StyledEditor";
import { FILES_REMOTE_ENTRY_URL, FILES_SCOPE } from "../helpers/constants"; import { FILES_REMOTE_ENTRY_URL, FILES_SCOPE } from "../helpers/constants";
function useSelectFolderDialog(t) { function useSelectFolderDialog(t, docEditor) {
const [isFolderDialogVisible, setIsFolderDialogVisible] = useState(false); const [isFolderDialogVisible, setIsFolderDialogVisible] = useState(false);
const [titleSelectorFolder, setTitleSelectorFolder] = useState(""); const [titleSelectorFolder, setTitleSelectorFolder] = useState("");
const [urlSelectorFolder, setUrlSelectorFolder] = useState(""); const [urlSelectorFolder, setUrlSelectorFolder] = useState("");
@ -27,7 +27,7 @@ function useSelectFolderDialog(t) {
}; };
const getSavingInfo = async (title, folderId) => { const getSavingInfo = async (title, folderId) => {
const savingInfo = await SaveAs( const savingInfo = await window.filesUtils.SaveAs(
title, title,
urlSelectorFolder, urlSelectorFolder,
folderId, folderId,
@ -49,7 +49,7 @@ function useSelectFolderDialog(t) {
: titleSelectorFolder; : titleSelectorFolder;
if (openNewTab) { if (openNewTab) {
SaveAs(title, urlSelectorFolder, folderId, openNewTab); window.filesUtils.SaveAs(title, urlSelectorFolder, folderId, openNewTab);
} else { } else {
getSavingInfo(title, folderId); getSavingInfo(title, folderId);
} }
@ -60,6 +60,7 @@ function useSelectFolderDialog(t) {
}; };
const onChangeInput = (e) => { const onChangeInput = (e) => {
console.log(e.target.value);
setTitleSelectorFolder(e.target.value); setTitleSelectorFolder(e.target.value);
}; };