Web: Doceditor: fixed open editor
This commit is contained in:
parent
53842400ce
commit
5753ec3417
@ -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) {
|
||||||
|
@ -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>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
@ -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")();
|
||||||
}
|
}
|
||||||
}, []);
|
}, []);
|
||||||
|
@ -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);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user