Fix anonymous user settings
This commit is contained in:
parent
0221f8c9b1
commit
24d3352ce4
|
@ -77,17 +77,34 @@ export class UserService {
|
|||
}
|
||||
|
||||
updateMyAnonymousProfile (profile: UserUpdateMe) {
|
||||
try {
|
||||
this.localStorageService.setItem(UserLocalStorageKeys.NSFW_POLICY, profile.nsfwPolicy)
|
||||
this.localStorageService.setItem(UserLocalStorageKeys.WEBTORRENT_ENABLED, profile.webTorrentEnabled)
|
||||
const localStorageKeys: { [ id in keyof UserUpdateMe ]: string } = {
|
||||
nsfwPolicy: UserLocalStorageKeys.NSFW_POLICY,
|
||||
webTorrentEnabled: UserLocalStorageKeys.WEBTORRENT_ENABLED,
|
||||
autoPlayNextVideo: UserLocalStorageKeys.AUTO_PLAY_VIDEO,
|
||||
autoPlayNextVideoPlaylist: UserLocalStorageKeys.AUTO_PLAY_VIDEO_PLAYLIST,
|
||||
theme: UserLocalStorageKeys.THEME,
|
||||
videoLanguages: UserLocalStorageKeys.VIDEO_LANGUAGES
|
||||
}
|
||||
|
||||
this.localStorageService.setItem(UserLocalStorageKeys.AUTO_PLAY_VIDEO, profile.autoPlayNextVideo)
|
||||
this.localStorageService.setItem(UserLocalStorageKeys.AUTO_PLAY_VIDEO_PLAYLIST, profile.autoPlayNextVideoPlaylist)
|
||||
const obj = Object.keys(localStorageKeys)
|
||||
.filter(key => key in profile)
|
||||
.map(key => ([ localStorageKeys[key], profile[key] ]))
|
||||
|
||||
this.localStorageService.setItem(UserLocalStorageKeys.THEME, profile.theme)
|
||||
this.localStorageService.setItem(UserLocalStorageKeys.VIDEO_LANGUAGES, profile.videoLanguages)
|
||||
} catch (err) {
|
||||
console.error(`Cannot set item in localStorage. Likely due to a value impossible to stringify.`, err)
|
||||
for (const [ key, value ] of obj) {
|
||||
try {
|
||||
if (!value) {
|
||||
this.localStorageService.removeItem(key)
|
||||
continue
|
||||
}
|
||||
|
||||
const localStorageValue = typeof value === 'string'
|
||||
? value
|
||||
: JSON.stringify(value)
|
||||
|
||||
this.localStorageService.setItem(key, localStorageValue)
|
||||
} catch (err) {
|
||||
console.error(`Cannot set ${key}->${value} in localStorage. Likely due to a value impossible to stringify.`, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -266,7 +283,10 @@ export class UserService {
|
|||
let videoLanguages: string[]
|
||||
|
||||
try {
|
||||
videoLanguages = JSON.parse(this.localStorageService.getItem(UserLocalStorageKeys.VIDEO_LANGUAGES))
|
||||
const languagesString = this.localStorageService.getItem(UserLocalStorageKeys.VIDEO_LANGUAGES)
|
||||
videoLanguages = languagesString && languagesString !== 'undefined'
|
||||
? JSON.parse(languagesString)
|
||||
: null
|
||||
} catch (err) {
|
||||
videoLanguages = null
|
||||
console.error('Cannot parse desired video languages from localStorage.', err)
|
||||
|
|
Loading…
Reference in New Issue