import {Component, Input, OnInit} from '@angular/core'; import {HeaderComponent} from '@header/header.component'; import {MatDialog} from '@angular/material/dialog'; import {ActivatedRoute} from '@angular/router'; import {LoginDialogComponent} from '@shared-components/login/login.component'; import {KeyValuePipe, NgForOf, NgIf} from '@angular/common'; import {FormType} from './form_type'; import {MatButton} from '@angular/material/button'; import {AuthService} from '@services/auth.service'; @Component({ selector: 'app-forms', imports: [ HeaderComponent, NgIf, NgForOf, MatButton, KeyValuePipe ], templateUrl: './forms.component.html', styleUrl: './forms.component.scss' }) export class FormsComponent implements OnInit { @Input() formTitle: string = 'Form'; @Input() currentPage: string = 'forms'; public type: FormType | undefined; constructor(private authService: AuthService, private dialog: MatDialog, private route: ActivatedRoute, ) { this.route.paramMap.subscribe(async params => { const code = params.get('code'); if (code) { this.authService.login(code).subscribe(); } else if (!this.authService.checkAuthStatus()) { const dialogRef = this.dialog.open(LoginDialogComponent, { width: '400px', disableClose: true }); dialogRef.afterClosed().subscribe(); } }); } ngOnInit() { this.route.paramMap.subscribe(params => { switch (params.get('form')) { case FormType.APPEAL: this.type = FormType.APPEAL; this.currentPage = 'appeal'; break; default: throw new Error("Invalid type"); } }); } protected readonly FormType = FormType; protected readonly Object = Object; public setFormType(formType: FormType) { this.type = formType; } }