mirror of
https://github.com/overleaf/overleaf.git
synced 2025-02-03 00:21:33 +00:00
Refactor saveUserSettings
: Move sendMB
inside the function and change function from supporting multiple settings to only support single key/value pair.
GitOrigin-RevId: 77b9d8fd5cdcbc78f38fd42329b74cf592615638
This commit is contained in:
parent
4444377b11
commit
654144dd40
4 changed files with 14 additions and 17 deletions
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -55,7 +55,7 @@ export default function useSetOverallTheme() {
|
|||
setLoadingStyleSheet(true)
|
||||
setChosenTheme(chosenTheme)
|
||||
setOverallTheme(newOverallTheme)
|
||||
saveUserSettings({ overallTheme: newOverallTheme })
|
||||
saveUserSettings('overallTheme', newOverallTheme)
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue