import { SessionApitype } from './../apitypes/Session.apitype'; import { Injectable } from '@angular/core'; @Injectable() export class StateService { private _isLoggedIn = false; get isLoggedIn(): boolean { return this._isLoggedIn; } set isLoggedIn(_isLoggedIn: boolean) { this._isLoggedIn = _isLoggedIn; this.saveLocalStorage(); } private _isAdmin = false; get isAdmin(): boolean { return this._isAdmin; } set isAdmin(_isAdmin: boolean) { this._isAdmin = _isAdmin; this.saveLocalStorage(); } private _apiToken: string = null; get apiToken(): string { return this._apiToken; } set apiToken(_apiToken: string) { this._apiToken = _apiToken; this.saveLocalStorage(); } private _isNative = false; get isNative(): boolean { return this._isNative; } set isNative(_isNative: boolean) { this._isNative = _isNative; this.saveLocalStorage(); } private _pageSize = 25; get pageSize(): number { return this._pageSize; } set pageSize(_pageSize: number) { this._pageSize = _pageSize; this.saveLocalStorage(); } private _pageSizes = [5, 10, 25, 50, 100]; get pageSizes(): Array { return this._pageSizes; } constructor() { this.loadLocalStorage(); } private saveLocalStorage() { localStorage.setItem('pdnsmanagerstate', JSON.stringify(this)); } private loadLocalStorage() { Object.assign(this, JSON.parse(localStorage.getItem('pdnsmanagerstate'))); } }