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