37 lines
No EOL
935 B
TypeScript
37 lines
No EOL
935 B
TypeScript
import { writable } from 'svelte/store'
|
|
|
|
interface PersistedSettings {
|
|
darkmode: boolean
|
|
loggedIn: boolean
|
|
friendlyName: string
|
|
email: string
|
|
role: string
|
|
accessToken: string,
|
|
refreshToken: string
|
|
}
|
|
|
|
const settingsDefault: PersistedSettings = {
|
|
darkmode: false,
|
|
loggedIn: false,
|
|
friendlyName: "",
|
|
email: "",
|
|
role: "member",
|
|
accessToken: "",
|
|
refreshToken: ""
|
|
}
|
|
|
|
export const persistentSettings = writable<PersistedSettings>(JSON.parse(localStorage.getItem('persistentSettings') || JSON.stringify(settingsDefault)))
|
|
|
|
persistentSettings.subscribe((value) => localStorage.persistentSettings = JSON.stringify(value))
|
|
|
|
export const clearLoginState = function() {
|
|
persistentSettings.update(settings => {
|
|
settings.accessToken = "";
|
|
settings.refreshToken = "";
|
|
settings.loggedIn = false;
|
|
settings.friendlyName = "";
|
|
settings.email = "";
|
|
settings.role = "member";
|
|
return settings;
|
|
})
|
|
} |