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:
M Fahru 2023-01-06 07:29:03 -07:00 committed by Copybot
parent 4444377b11
commit 654144dd40
4 changed files with 14 additions and 17 deletions

View file

@ -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)
}
}
}

View file

@ -55,7 +55,7 @@ export default function useSetOverallTheme() {
setLoadingStyleSheet(true)
setChosenTheme(chosenTheme)
setOverallTheme(newOverallTheme)
saveUserSettings({ overallTheme: newOverallTheme })
saveUserSettings('overallTheme', newOverallTheme)
}
}
},

View file

@ -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]

View file

@ -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,
},
})
}