Add new components, styles, and services for user management and navigation

This commit is contained in:
liosha84
2025-06-25 13:44:35 +03:00
parent 9b7465d3dc
commit 2ae1871330
125 changed files with 12940 additions and 1610 deletions
@@ -1,4 +1,5 @@
import { Injectable } from '@angular/core';
import {inject, Injectable} from '@angular/core';
import {DOCUMENT} from '@angular/common';
const TOKEN_KEY = 'auth-token';
const USER_KEY = 'auth-user';
@@ -7,28 +8,33 @@ const USER_KEY = 'auth-user';
providedIn: 'root'
})
export class TokenStorageService {
constructor() { }
private document = inject<Document>(DOCUMENT);
constructor() {
}
signOut(): void {
window.sessionStorage.clear();
this.document.defaultView?.sessionStorage.clear();
}
public saveToken(token: string): void {
window.sessionStorage.removeItem(TOKEN_KEY);
window.sessionStorage.setItem(TOKEN_KEY, token);
document.defaultView?.sessionStorage.removeItem(TOKEN_KEY);
document.defaultView?.sessionStorage.setItem(TOKEN_KEY, token);
}
public getToken(): string | null {
return window.sessionStorage.getItem(TOKEN_KEY);
public getToken(): string | null| undefined {
return document.defaultView?.sessionStorage.getItem(TOKEN_KEY);
}
public saveUser(user: any): void {
window.sessionStorage.removeItem(USER_KEY);
window.sessionStorage.setItem(USER_KEY, JSON.stringify(user));
document.defaultView?.sessionStorage.removeItem(USER_KEY);
document.defaultView?.sessionStorage.setItem(USER_KEY, JSON.stringify(user));
}
public getUser(): any {
const user = window.sessionStorage.getItem(USER_KEY);
const user = document.defaultView?.sessionStorage.getItem(USER_KEY);
if (user) {
return JSON.parse(user);
}
@@ -37,11 +43,11 @@ export class TokenStorageService {
}
clean(): void {
window.sessionStorage.clear();
document.defaultView?.sessionStorage.clear();
}
public isLoggedIn(): boolean {
const user = window.sessionStorage.getItem(USER_KEY);
const user = this.document.defaultView?.sessionStorage?.getItem(USER_KEY);
if (user) {
return true;
}