diff --git a/web/ASC.Web.Editor/src/helpers/useSelectFolderDialog.js b/web/ASC.Web.Editor/src/helpers/useSelectFolderDialog.js new file mode 100644 index 0000000000..976faecb9a --- /dev/null +++ b/web/ASC.Web.Editor/src/helpers/useSelectFolderDialog.js @@ -0,0 +1,110 @@ +import React, { useState } from "react"; +import DynamicComponent from "../components/dynamic"; +import Text from "@appserver/components/text"; +import TextInput from "@appserver/components/text-input"; +import Checkbox from "@appserver/components/checkbox"; +import { StyledSelectFolder } from "../StyledEditor"; + +function useSelectFolderDialog(t) { + const [isFolderDialogVisible, setIsFolderDialogVisible] = useState(false); + const [titleSelectorFolder, setTitleSelectorFolder] = useState(""); + const [urlSelectorFolder, setUrlSelectorFolder] = useState(""); + const [extension, setExtension] = useState(); + const [openNewTab, setNewOpenTab] = useState(false); + + const onSDKRequestSaveAs = (event) => { + setTitleSelectorFolder(event.data.title); + setUrlSelectorFolder(event.data.url); + setExtension(event.data.title.split(".").pop()); + + setIsFolderDialogVisible(true); + }; + + const onCloseFolderDialog = () => { + setIsFolderDialogVisible(false); + setNewOpenTab(false); + }; + + const getSavingInfo = async (title, folderId) => { + const savingInfo = await SaveAs( + title, + urlSelectorFolder, + folderId, + openNewTab + ); + + if (savingInfo) { + const convertedInfo = savingInfo.split(": ").pop(); + docEditor.showMessage(convertedInfo); + } + }; + + const onClickSaveSelectFolder = (e, folderId) => { + const currentExst = titleSelectorFolder.split(".").pop(); + + const title = + currentExst !== extension + ? titleSelectorFolder.concat(`.${extension}`) + : titleSelectorFolder; + + if (openNewTab) { + SaveAs(title, urlSelectorFolder, folderId, openNewTab); + } else { + getSavingInfo(title, folderId); + } + }; + + const onClickCheckbox = () => { + setNewOpenTab(!openNewTab); + }; + + const onChangeInput = (e) => { + setTitleSelectorFolder(e.target.value); + }; + + const selectFolderDialog = + typeof window !== "undefined" && isFolderDialogVisible ? ( + + {t("FileName")} + + + } + {...(extension !== "fb2" && { + footer: ( + + + + ), + })} + /> + ) : null; + return [selectFolderDialog, onSDKRequestSaveAs]; +} + +export default useSelectFolderDialog;