diff --git a/services/web/frontend/js/features/editor-left-menu/hooks/use-save-user-settings.tsx b/services/web/frontend/js/features/editor-left-menu/hooks/use-save-user-settings.tsx index ec1f1e605b..130e0a1393 100644 --- a/services/web/frontend/js/features/editor-left-menu/hooks/use-save-user-settings.tsx +++ b/services/web/frontend/js/features/editor-left-menu/hooks/use-save-user-settings.tsx @@ -1,5 +1,4 @@ import useScopeValue from '../../../shared/hooks/use-scope-value' -import { sendMB } from '../../../infrastructure/event-tracking' import { saveUserSettings } from '../utils/api' import type { UserSettings } from '../utils/api' @@ -15,14 +14,9 @@ export default function useSaveUserSettings() { ) => { const currentSetting = userSettings[key] - sendMB('setting-changed', { - changedSetting: key, - changedSettingVal: newSetting, - }) - if (currentSetting !== newSetting) { setUserSettings({ ...userSettings, [key]: newSetting }) - saveUserSettings({ [key]: newSetting }) + saveUserSettings(key, newSetting) } } } diff --git a/services/web/frontend/js/features/editor-left-menu/hooks/use-set-overall-theme.tsx b/services/web/frontend/js/features/editor-left-menu/hooks/use-set-overall-theme.tsx index b608549275..3a3288c899 100644 --- a/services/web/frontend/js/features/editor-left-menu/hooks/use-set-overall-theme.tsx +++ b/services/web/frontend/js/features/editor-left-menu/hooks/use-set-overall-theme.tsx @@ -55,7 +55,7 @@ export default function useSetOverallTheme() { setLoadingStyleSheet(true) setChosenTheme(chosenTheme) setOverallTheme(newOverallTheme) - saveUserSettings({ overallTheme: newOverallTheme }) + saveUserSettings('overallTheme', newOverallTheme) } } }, diff --git a/services/web/frontend/js/features/editor-left-menu/hooks/use-set-spell-check-language.tsx b/services/web/frontend/js/features/editor-left-menu/hooks/use-set-spell-check-language.tsx index ca055fd8a2..409da6fdea 100644 --- a/services/web/frontend/js/features/editor-left-menu/hooks/use-set-spell-check-language.tsx +++ b/services/web/frontend/js/features/editor-left-menu/hooks/use-set-spell-check-language.tsx @@ -1,5 +1,4 @@ import { useCallback } from 'react' -import { sendMB } from '../../../infrastructure/event-tracking' import { useProjectContext } from '../../../shared/context/project-context' import useScopeValue from '../../../shared/hooks/use-scope-value' import { @@ -20,11 +19,6 @@ export default function useSetSpellCheckLanguage() { newSpellCheckLanguage && newSpellCheckLanguage !== spellCheckLanguage if (allowUpdate) { - sendMB('setting-changed', { - changedSetting: 'spellCheckLanguage', - changedSettingVal: newSpellCheckLanguage, - }) - setSpellCheckLanguage(newSpellCheckLanguage) // save to both project setting and user setting @@ -32,7 +26,7 @@ export default function useSetSpellCheckLanguage() { projectId, spellCheckLanguage: newSpellCheckLanguage, }) - saveUserSettings({ spellCheckLanguage: newSpellCheckLanguage }) + saveUserSettings('spellCheckLanguage', newSpellCheckLanguage) } }, [projectId, setSpellCheckLanguage, spellCheckLanguage] diff --git a/services/web/frontend/js/features/editor-left-menu/utils/api.ts b/services/web/frontend/js/features/editor-left-menu/utils/api.ts index 20578ac586..a74d76203d 100644 --- a/services/web/frontend/js/features/editor-left-menu/utils/api.ts +++ b/services/web/frontend/js/features/editor-left-menu/utils/api.ts @@ -8,6 +8,7 @@ import type { PdfViewer, ProjectCompiler, } from '../../../../../types/project-settings' +import { sendMB } from '../../../infrastructure/event-tracking' import { postJSON } from '../../../infrastructure/fetch-json' export type UserSettings = { @@ -36,10 +37,18 @@ type SaveUserSettings = Partial< } > -export function saveUserSettings(data: SaveUserSettings) { +export function saveUserSettings( + key: keyof SaveUserSettings, + value: SaveUserSettings[keyof SaveUserSettings] +) { + sendMB('setting-changed', { + changedSetting: key, + changedSettingVal: value, + }) + postJSON('/user/settings', { body: { - ...data, + [key]: value, }, }) }