import { Component, OnDestroy, OnInit } from "@angular/core"; import { ActivatedRoute } from "@angular/router"; import { Subject, takeUntil } from "rxjs"; import { DialogService } from "@bitwarden/components"; import { ProjectDialogComponent, ProjectOperation, } from "../projects/dialog/project-dialog.component"; import { OperationType, SecretDialogComponent, SecretOperation, } from "../secrets/dialog/secret-dialog.component"; import { ServiceAccountDialogComponent, ServiceAccountOperation, } from "../service-accounts/dialog/service-account-dialog.component"; @Component({ selector: "sm-new-menu", templateUrl: "./new-menu.component.html", }) export class NewMenuComponent implements OnInit, OnDestroy { private organizationId: string; private destroy$: Subject = new Subject(); constructor(private route: ActivatedRoute, private dialogService: DialogService) {} ngOnInit() { this.route.params.pipe(takeUntil(this.destroy$)).subscribe((params: any) => { this.organizationId = params.organizationId; }); } ngOnDestroy(): void { this.destroy$.next(); this.destroy$.complete(); } openSecretDialog() { this.dialogService.open(SecretDialogComponent, { data: { organizationId: this.organizationId, operation: OperationType.Add, }, }); } openProjectDialog() { this.dialogService.open(ProjectDialogComponent, { data: { organizationId: this.organizationId, operation: OperationType.Add, }, }); } openServiceAccountDialog() { this.dialogService.open(ServiceAccountDialogComponent, { data: { organizationId: this.organizationId, }, }); } }