home.component.ts raw
1 import { Component, inject, OnInit } from '@angular/core';
2 import { ActivatedRoute, Router } from '@angular/router';
3 import {
4 ConfirmComponent,
5 Identity_DECRYPTED,
6 NavItemComponent,
7 StorageService,
8 } from '@common';
9
10 @Component({
11 selector: 'app-edit-identity-home',
12 imports: [NavItemComponent, ConfirmComponent],
13 templateUrl: './home.component.html',
14 styleUrl: './home.component.scss',
15 })
16 export class HomeComponent implements OnInit {
17 identity?: Identity_DECRYPTED;
18
19 readonly #activatedRoute = inject(ActivatedRoute);
20 readonly #storage = inject(StorageService);
21 readonly #router = inject(Router);
22
23 ngOnInit(): void {
24 const identityId = this.#activatedRoute.parent?.snapshot.params['id'];
25 if (!identityId) {
26 return;
27 }
28
29 this.#initialize(identityId);
30 }
31
32 onClickNavigateTo(destination: 'keys' | 'permissions' | 'relays') {
33 this.#router.navigateByUrl(
34 `/edit-identity/${this.identity?.id}/${destination}`
35 );
36 }
37
38 async onConfirmDeletion() {
39 await this.#storage.deleteIdentity(this.identity?.id);
40 await this.#router.navigateByUrl('/home/identities');
41 }
42
43 #initialize(selectedIdentityId: string) {
44 this.identity = this.#storage
45 .getBrowserSessionHandler()
46 .browserSessionData?.identities.find((x) => x.id === selectedIdentityId);
47 }
48 }
49