Files
plebeian-signer/projects/firefox/src/app/components/edit-identity/home/home.component.ts
2025-02-07 20:20:15 +01:00

49 lines
1.3 KiB
TypeScript

import { Component, inject, OnInit } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import {
ConfirmComponent,
Identity_DECRYPTED,
NavItemComponent,
StorageService,
} from '@common';
@Component({
selector: 'app-edit-identity-home',
imports: [NavItemComponent, ConfirmComponent],
templateUrl: './home.component.html',
styleUrl: './home.component.scss',
})
export class HomeComponent implements OnInit {
identity?: Identity_DECRYPTED;
readonly #activatedRoute = inject(ActivatedRoute);
readonly #storage = inject(StorageService);
readonly #router = inject(Router);
ngOnInit(): void {
const identityId = this.#activatedRoute.parent?.snapshot.params['id'];
if (!identityId) {
return;
}
this.#initialize(identityId);
}
onClickNavigateTo(destination: 'keys' | 'permissions' | 'relays') {
this.#router.navigateByUrl(
`/edit-identity/${this.identity?.id}/${destination}`
);
}
async onConfirmDeletion() {
await this.#storage.deleteIdentity(this.identity?.id);
await this.#router.navigateByUrl('/home/identities');
}
#initialize(selectedIdentityId: string) {
this.identity = this.#storage
.getBrowserSessionHandler()
.browserSessionData?.identities.find((x) => x.id === selectedIdentityId);
}
}