1
0
Fork 0
mirror of https://github.com/muerwre/vault-frontend.git synced 2025-04-25 12:56:41 +07:00

removed redux completely

This commit is contained in:
Fedor Katurov 2022-01-09 19:03:01 +07:00
parent 26e6d8d41b
commit a4bb07e9cf
323 changed files with 2464 additions and 3348 deletions

View file

@ -0,0 +1,43 @@
import { IUser } from '~/types/auth';
import { EMPTY_USER } from '~/constants/auth';
import { makeAutoObservable } from 'mobx';
import { makePersistable } from 'mobx-persist-store';
export class AuthStore {
token: string = '';
user: IUser = EMPTY_USER;
private isTesterInternal: boolean = false;
constructor() {
makeAutoObservable(this);
void makePersistable(this, {
name: `vault48_auth_${process.env.REACT_APP_API_URL}`,
properties: ['token', 'user'],
storage: window.localStorage,
});
}
get isUser() {
return !!this.token;
}
setUser = (user: Partial<IUser>) => {
this.user = { ...this.user, ...user };
};
setToken = (token: string) => {
this.token = token;
};
setIsTester = (isTester: boolean) => (this.isTesterInternal = isTester);
get isTester() {
return this.isUser && this.isTesterInternal;
}
logout = () => {
this.token = '';
this.setUser(EMPTY_USER);
};
}