1
0
mirror of https://github.com/mgerb/classic-wow-forums synced 2026-01-10 09:02:50 +00:00
Files
classic-wow-forums/client/app/stores/user-store.ts

39 lines
869 B
TypeScript

import { action, observable } from 'mobx';
import { UserModel } from '../model';
import { resetAuthorizationHeader, setAuthorizationHeader } from '../axios/axios';
export class UserStore {
@observable user?: UserModel;
constructor() {
// use timeout or axios won't be defined
setTimeout(() => {
this.getUserFromStorage();
});
}
@action setUser(user: UserModel) {
localStorage.setItem('user', JSON.stringify(user));
this.getUserFromStorage();
}
@action private getUserFromStorage(): void {
const u = localStorage.getItem('user');
if (u) {
this.user = JSON.parse(u);
setAuthorizationHeader(this.user!.token);
}
}
// when the user logs out
@action resetUser() {
this.user = undefined;
resetAuthorizationHeader();
localStorage.removeItem('user');
}
}
export default new UserStore();