refactor: scope PouchDB writes to repo config, not user font prefs

chosen* fields are per-browser preferences — localStorage is the correct
and sufficient store for them. Removing data.update from font setters and
stripping chosen* from the GitHub fetch PouchDB write prevents stale PouchDB
data from conflicting with localStorage on reload.
This commit is contained in:
Julien Calixte
2026-04-06 23:26:50 +02:00
parent 73a6014750
commit e369541dc0

View File

@@ -135,8 +135,16 @@ export const useUserRepoStore = defineStore("USER_REPO_STATE", {
this.userSettings.chosenTitleFont = chosenTitleFont this.userSettings.chosenTitleFont = chosenTitleFont
this.userSettings.chosenBodyFont = chosenBodyFont this.userSettings.chosenBodyFont = chosenBodyFont
// Persist only repo config fields — chosen* are localStorage-only
const {
chosenTitleFont: _t,
chosenBodyFont: _b,
chosenFontSize: _s,
chosenFontFamily: _f,
...repoConfig
} = this.userSettings
data.update<DataType.UserSettings, UserSettings>({ data.update<DataType.UserSettings, UserSettings>({
...this.userSettings, ...repoConfig,
_id: userSettingsId _id: userSettingsId
}) })
}) })
@@ -187,52 +195,28 @@ export const useUserRepoStore = defineStore("USER_REPO_STATE", {
this.userSettings = { $type: DataType.UserSettings } this.userSettings = { $type: DataType.UserSettings }
} }
this.userSettings.chosenFontFamily = fontFamily this.userSettings.chosenFontFamily = fontFamily
this._persistFonts() this._persistFonts()
const userSettingsId = `UserSetting-${this.user}-${this.repo}`
data.update<DataType.UserSettings, UserSettings>({
...this.userSettings,
_id: userSettingsId
})
}, },
setFontSize(fontSize: string) { setFontSize(fontSize: string) {
if (!this.userSettings) { if (!this.userSettings) {
this.userSettings = { $type: DataType.UserSettings } this.userSettings = { $type: DataType.UserSettings }
} }
this.userSettings.chosenFontSize = fontSize this.userSettings.chosenFontSize = fontSize
this._persistFonts() this._persistFonts()
const userSettingsId = `UserSetting-${this.user}-${this.repo}`
data.update<DataType.UserSettings, UserSettings>({
...this.userSettings,
_id: userSettingsId
})
}, },
setTitleFont(font: string) { setTitleFont(font: string) {
if (!this.userSettings) { if (!this.userSettings) {
this.userSettings = { $type: DataType.UserSettings } this.userSettings = { $type: DataType.UserSettings }
} }
this.userSettings.chosenTitleFont = font this.userSettings.chosenTitleFont = font
this._persistFonts() this._persistFonts()
const userSettingsId = `UserSetting-${this.user}-${this.repo}`
data.update<DataType.UserSettings, UserSettings>({
...this.userSettings,
_id: userSettingsId
})
}, },
setBodyFont(font: string) { setBodyFont(font: string) {
if (!this.userSettings) { if (!this.userSettings) {
this.userSettings = { $type: DataType.UserSettings } this.userSettings = { $type: DataType.UserSettings }
} }
this.userSettings.chosenBodyFont = font this.userSettings.chosenBodyFont = font
this._persistFonts() this._persistFonts()
const userSettingsId = `UserSetting-${this.user}-${this.repo}`
data.update<DataType.UserSettings, UserSettings>({
...this.userSettings,
_id: userSettingsId
})
} }
} }
}) })