41 lines
1.5 KiB
TypeScript
41 lines
1.5 KiB
TypeScript
import { CommonModule } from '@angular/common';
|
|
import { Component } from '@angular/core';
|
|
import { FormsModule } from '@angular/forms';
|
|
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
|
import { ShareByEMail } from '../../../../../bizmatch-server/src/models/db.model';
|
|
import { MailService } from '../../services/mail.service';
|
|
import { ValidatedInputComponent } from '../validated-input/validated-input.component';
|
|
import { ValidationMessagesService } from '../validation-messages.service';
|
|
import { EMailService } from './email.service';
|
|
|
|
@UntilDestroy()
|
|
@Component({
|
|
selector: 'app-email',
|
|
standalone: true,
|
|
imports: [CommonModule, FormsModule, ValidatedInputComponent],
|
|
templateUrl: './email.component.html',
|
|
template: ``,
|
|
})
|
|
export class EMailComponent {
|
|
shareByEMail: ShareByEMail = {};
|
|
constructor(public eMailService: EMailService, private mailService: MailService, private validationMessagesService: ValidationMessagesService) {}
|
|
ngOnInit() {
|
|
this.eMailService.shareByEMail$.pipe(untilDestroyed(this)).subscribe(val => {
|
|
this.shareByEMail = val;
|
|
});
|
|
}
|
|
async sendMail() {
|
|
try {
|
|
const result = await this.mailService.mailToFriend(this.shareByEMail);
|
|
this.eMailService.accept(this.shareByEMail);
|
|
} catch (error) {
|
|
if (error.error && Array.isArray(error.error?.message)) {
|
|
this.validationMessagesService.updateMessages(error.error.message);
|
|
}
|
|
}
|
|
}
|
|
ngOnDestroy() {
|
|
this.validationMessagesService.clearMessages(); // Löschen Sie alle bestehenden Validierungsnachrichten
|
|
}
|
|
}
|