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