From 38efea39f2fbe342a8c79312f1f1ccee38ed9192 Mon Sep 17 00:00:00 2001 From: Tim Down <158919+timdown@users.noreply.github.com> Date: Tue, 21 Nov 2023 14:29:44 +0000 Subject: [PATCH] Merge pull request #15707 from overleaf/td-user-settings-context Move user settings to a context GitOrigin-RevId: 9a9d55dfee9f71cee323fe64d1442303ac7cfeb2 --- .../components/left-menu-mask.tsx | 6 +- .../settings/settings-font-size.tsx | 4 +- .../settings/settings-menu-select.tsx | 16 ++-- .../context/project-settings-context.tsx | 3 +- .../hooks/use-save-user-settings.tsx | 9 +-- .../hooks/use-set-overall-theme.tsx | 17 ++++- .../hooks/use-user-wide-settings.tsx | 42 ++++++----- .../js/features/editor-left-menu/utils/api.ts | 25 +------ .../diff-view/document-diff-viewer.tsx | 15 +--- .../ide-react/context/ide-react-context.tsx | 2 - .../ide-react/context/react-context-root.tsx | 65 ++++++++-------- .../scope-adapters/settings-adapter.ts | 5 -- .../components/codemirror-search-form.tsx | 6 +- .../hooks/use-codemirror-scope.ts | 27 ++++--- services/web/frontend/js/ide.js | 9 +-- .../shared/context/local-compile-context.jsx | 9 +-- .../js/shared/context/root-context.jsx | 41 +++++----- .../shared/context/user-settings-context.tsx | 74 +++++++++++++++++++ .../pdf-preview/pdf-preview.spec.tsx | 4 +- .../codemirror-editor-shortcuts.spec.tsx | 8 +- .../components/codemirror-editor.spec.tsx | 12 +-- .../source-editor/helpers/mock-scope.ts | 12 --- .../frontend/helpers/editor-providers.jsx | 61 ++++++++++----- services/web/types/user-settings.ts | 19 +++++ services/web/types/window.ts | 2 +- 25 files changed, 291 insertions(+), 202 deletions(-) delete mode 100644 services/web/frontend/js/features/ide-react/scope-adapters/settings-adapter.ts create mode 100644 services/web/frontend/js/shared/context/user-settings-context.tsx create mode 100644 services/web/types/user-settings.ts diff --git a/services/web/frontend/js/features/editor-left-menu/components/left-menu-mask.tsx b/services/web/frontend/js/features/editor-left-menu/components/left-menu-mask.tsx index e606102967..88079eda6d 100644 --- a/services/web/frontend/js/features/editor-left-menu/components/left-menu-mask.tsx +++ b/services/web/frontend/js/features/editor-left-menu/components/left-menu-mask.tsx @@ -1,11 +1,11 @@ import { memo, useEffect, useRef, useState } from 'react' import { useLayoutContext } from '../../../shared/context/layout-context' -import useScopeValue from '../../../shared/hooks/use-scope-value' +import { useUserSettingsContext } from '@/shared/context/user-settings-context' export default memo(function LeftMenuMask() { const { setLeftMenuShown } = useLayoutContext() - const [editorTheme] = useScopeValue('settings.editorTheme') - const [overallTheme] = useScopeValue('settings.overallTheme') + const { userSettings } = useUserSettingsContext() + const { editorTheme, overallTheme } = userSettings const [original] = useState({ editorTheme, overallTheme }) const maskRef = useRef(null) diff --git a/services/web/frontend/js/features/editor-left-menu/components/settings/settings-font-size.tsx b/services/web/frontend/js/features/editor-left-menu/components/settings/settings-font-size.tsx index 7af302060d..b3a152299f 100644 --- a/services/web/frontend/js/features/editor-left-menu/components/settings/settings-font-size.tsx +++ b/services/web/frontend/js/features/editor-left-menu/components/settings/settings-font-size.tsx @@ -3,8 +3,8 @@ import { useProjectSettingsContext } from '../../context/project-settings-contex import SettingsMenuSelect from './settings-menu-select' import type { Option } from './settings-menu-select' -const sizes = ['10', '11', '12', '13', '14', '16', '18', '20', '22', '24'] -const options: Array