import { Component, Inject, OnInit } from '@angular/core'; import { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog'; import { MatTableDataSource } from '@angular/material/table'; import { QuotaService } from './../../../services/quota.service'; import { VoucherService } from './../../../services/voucher.service'; @Component({ standalone: false, selector: 'app-account-voucher', templateUrl: './voucher.component.html', styleUrls: ['./voucher.component.scss'] }) export class VoucherComponent implements OnInit { public hasRegistration: boolean = false; model: any = {}; available = []; vouchers = []; voucherSource = new MatTableDataSource(); voucherColumns = ['type', 'code']; constructor(private voucherService: VoucherService, private quotaService: QuotaService, public dialog: MatDialog) { } ngOnInit(): void { this.voucherSource.data = this.vouchers; this.voucherService.get().subscribe({ next: (data: any) => { this.available = data; } }) } create(name: string) { this.voucherService.create(name).toPromise().then(data => { this.model.type = name; this.model.code = data; this.vouchers.push(this.model); this.voucherSource.data = this.vouchers; const dialogRef = this.dialog.open(VoucherDialog, { closeOnNavigation: false, disableClose: true, data: this.model }); }, error => { }) } } @Component({ standalone: false, selector: 'app-voucher-dialog', templateUrl: 'voucher.dialog.html', styleUrls: ['./voucher.dialog.scss'] }) export class VoucherDialog { constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any) { } onOkClick(): void { this.dialogRef.close(); } }