Feture #52: Social Media Integration, BugFix: #89 Sates as ng-select, send Listing as EMail to friend

This commit is contained in:
2024-08-30 14:25:29 +02:00
parent 630c31cfc9
commit f4f576d4a9
16 changed files with 342 additions and 164 deletions

View File

@@ -7,8 +7,10 @@ import { lastValueFrom } from 'rxjs';
import { BusinessListing, User } from '../../../../../../bizmatch-server/src/models/db.model';
import { KeycloakUser, MailInfo } from '../../../../../../bizmatch-server/src/models/main.model';
import { environment } from '../../../../environments/environment';
import { EMailService } from '../../../components/email/email.service';
import { MessageService } from '../../../components/message/message.service';
import { ValidatedInputComponent } from '../../../components/validated-input/validated-input.component';
import { ValidatedNgSelectComponent } from '../../../components/validated-ng-select/validated-ng-select.component';
import { ValidatedTextareaComponent } from '../../../components/validated-textarea/validated-textarea.component';
import { ValidationMessagesService } from '../../../components/validation-messages.service';
import { HistoryService } from '../../../services/history.service';
@@ -22,7 +24,7 @@ import { createMailInfo, map2User } from '../../../utils/utils';
@Component({
selector: 'app-details-business-listing',
standalone: true,
imports: [SharedModule, ValidatedInputComponent, ValidatedTextareaComponent, ShareButton],
imports: [SharedModule, ValidatedInputComponent, ValidatedTextareaComponent, ShareButton, ValidatedNgSelectComponent],
providers: [],
templateUrl: './details-business-listing.component.html',
styleUrl: '../details.scss',
@@ -70,6 +72,7 @@ export class DetailsBusinessListingComponent {
private validationMessagesService: ValidationMessagesService,
private messageService: MessageService,
private logService: LogService,
public emailService: EMailService,
) {
this.router.events.subscribe(event => {
if (event instanceof NavigationEnd) {
@@ -153,4 +156,21 @@ export class DetailsBusinessListingComponent {
isAlreadyFavorite() {
return this.listing.favoritesForUser.includes(this.user.email);
}
async showShareByEMail() {
const result = await this.emailService.showShareByEMail({
email: this.user.email,
name: `${this.user.firstname} ${this.user.lastname}`,
url: environment.mailinfoUrl,
listingTitle: this.listing.title,
id: this.listing.id,
type: 'business',
});
if (result) {
this.messageService.addMessage({
severity: 'success',
text: 'Your Email has beend sent',
duration: 5000,
});
}
}
}