diff --git a/packages/doceditor/src/components/Editor.tsx b/packages/doceditor/src/components/Editor.tsx index 13cfadd646..add387bab8 100644 --- a/packages/doceditor/src/components/Editor.tsx +++ b/packages/doceditor/src/components/Editor.tsx @@ -51,7 +51,6 @@ import { } from "@/utils/events"; import useInit from "@/hooks/useInit"; import useEditorEvents from "@/hooks/useEditorEvents"; -import useFilesSettings from "@/hooks/useFilesSettings"; type IConfigType = IConfig & { events?: { @@ -77,6 +76,8 @@ const Editor = ({ errorMessage, isSkipError, + filesSettings, + onDownloadAs, onSDKRequestSharingSettings, onSDKRequestSaveAs, @@ -89,7 +90,6 @@ const Editor = ({ const { t, i18n } = useTranslation(["Common", "Editor", "DeepLink"]); const searchParams = useSearchParams(); - const { filesSettings } = useFilesSettings({}); const openOnNewPage = IS_ZOOM ? false : !filesSettings?.openEditorInSameTab; diff --git a/packages/doceditor/src/components/Root.tsx b/packages/doceditor/src/components/Root.tsx index 0754746f47..474dc967d6 100644 --- a/packages/doceditor/src/components/Root.tsx +++ b/packages/doceditor/src/components/Root.tsx @@ -231,6 +231,7 @@ const Root = ({ errorMessage={error?.message} isSkipError={!!isSkipError} onDownloadAs={onDownloadAs} + filesSettings={filesSettings} onSDKRequestSharingSettings={onSDKRequestSharingSettings} onSDKRequestSaveAs={onSDKRequestSaveAs} onSDKRequestInsertImage={onSDKRequestInsertImage} diff --git a/packages/doceditor/src/hooks/useFilesSettings.ts b/packages/doceditor/src/hooks/useFilesSettings.ts index 87343031dd..005b918f94 100644 --- a/packages/doceditor/src/hooks/useFilesSettings.ts +++ b/packages/doceditor/src/hooks/useFilesSettings.ts @@ -30,28 +30,21 @@ import { getSettingsFiles } from "@docspace/shared/api/files"; import { TFilesSettings } from "@docspace/shared/api/files/types"; const useFilesSettings = ({}) => { - const [settings, setSettings] = React.useState({} as TFilesSettings); - - const requestRunning = React.useRef(false); - - const initSettings = React.useCallback(async () => { - if (requestRunning.current) return; - - requestRunning.current = true; - - const res = await getSettingsFiles(); - - setSettings(res); - requestRunning.current = false; - }, []); + const [settings, setSettings] = React.useState( + {} as TFilesSettings, + ); React.useEffect(() => { - if (settings.extsArchive) return; + const initSettings = async () => { + const res = await getSettingsFiles(); + + setSettings(res); + }; + initSettings(); - }, [initSettings, settings.extsArchive]); + }, []); return { filesSettings: settings }; }; export default useFilesSettings; - diff --git a/packages/doceditor/src/hooks/useTheme.ts b/packages/doceditor/src/hooks/useTheme.ts index 33330b3c79..b1a2abd991 100644 --- a/packages/doceditor/src/hooks/useTheme.ts +++ b/packages/doceditor/src/hooks/useTheme.ts @@ -90,17 +90,17 @@ const useTheme = ({ const isRequestRunning = React.useRef(false); const getCurrentColorTheme = React.useCallback(async () => { - if (isRequestRunning.current) return; + if (isRequestRunning.current || colorTheme) return; isRequestRunning.current = true; const colorThemes = await getAppearanceTheme(); - const colorTheme = colorThemes.themes.find( + const curColorTheme = colorThemes.themes.find( (t) => t.id === colorThemes.selected, ); isRequestRunning.current = false; - if (colorTheme) setCurrentColorTheme(colorTheme); - }, []); + if (curColorTheme) setCurrentColorTheme(curColorTheme); + }, [colorTheme]); const getUserTheme = React.useCallback(() => { const SYSTEM_THEME = getSystemTheme(); diff --git a/packages/doceditor/src/types/index.ts b/packages/doceditor/src/types/index.ts index 739282d2e6..0a39da9771 100644 --- a/packages/doceditor/src/types/index.ts +++ b/packages/doceditor/src/types/index.ts @@ -229,6 +229,7 @@ export type EditorProps = { isSharingAccess?: boolean; errorMessage?: string; isSkipError?: boolean; + filesSettings: TFilesSettings; onDownloadAs?: (obj: object) => void; onSDKRequestSharingSettings?: () => void;