Sync user settings with newer versions on changes
This commit is contained in:
parent
12d6bd2c38
commit
39808373cb
@ -18,9 +18,28 @@ export function getDefaultSettings() {
|
|||||||
type: 'checkbox'
|
type: 'checkbox'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export function syncUserSettings() {
|
||||||
|
const defaultSettings = getDefaultSettings()
|
||||||
|
let userSettings = localStorage.getItem('settings')
|
||||||
|
if (!userSettings) return
|
||||||
|
const parsedUserSettings = JSON.parse(userSettings)
|
||||||
|
|
||||||
|
if(parsedUserSettings.version === import.meta.env.SAFETWITCH_TAG) {
|
||||||
|
console.log('Settings up to date!')
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
console.log('Settings outdated... Migrating')
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getSetting(key: string): boolean | string {
|
|
||||||
|
const synced = {...defaultSettings, ...parsedUserSettings}
|
||||||
|
localStorage.setItem('settings', JSON.stringify(synced))
|
||||||
|
console.log('Migrated!')
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getSetting(key: string): boolean | string {
|
||||||
const storage = localStorage.getItem('settings')
|
const storage = localStorage.getItem('settings')
|
||||||
let parsed
|
let parsed
|
||||||
if (!storage) {
|
if (!storage) {
|
||||||
@ -30,13 +49,12 @@ export function getDefaultSettings() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return parsed[key].selected
|
return parsed[key].selected
|
||||||
}
|
}
|
||||||
|
|
||||||
export function chatVisible() {
|
export function chatVisible() {
|
||||||
const p = getSetting('chatVisible')
|
const p = getSetting('chatVisible')
|
||||||
// Flip becuase on the setting page it's
|
// Flip becuase on the setting page it's
|
||||||
// displayed as "Hide Chat", but the value
|
// displayed as "Hide Chat", but the value
|
||||||
// is chatVisible
|
// is chatVisible
|
||||||
return !p
|
return !p
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { getDefaultSettings } from '@/settingsManager'
|
import { getDefaultSettings, syncUserSettings } from '@/settingsManager'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
setup() {
|
setup() {
|
||||||
let settings
|
let settings
|
||||||
|
syncUserSettings()
|
||||||
|
|
||||||
let storedSettings = localStorage.getItem('settings')
|
let storedSettings = localStorage.getItem('settings')
|
||||||
if (storedSettings === null) {
|
if (storedSettings === null) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user