import { ChangeDetectionStrategy, Component, ElementRef, input, viewChild } from '@angular/core'; import { DatePipe } from '@angular/common'; import html2canvas from 'html2canvas'; import { UserData } from '@/core/models/auth.models'; import { ButtonDirective } from '@/shared/ui/button.directive'; @Component({ selector: 'app-user-ticket', standalone: true, imports: [DatePipe, ButtonDirective], templateUrl: './user-ticket.component.html', styleUrl: './user-ticket.component.scss', changeDetection: ChangeDetectionStrategy.OnPush, }) export class UserTicketComponent { user = input.required(); ticket = viewChild.required>('ticket'); async downloadQR() { const ticket = this.ticket().nativeElement; const canvas = await html2canvas(ticket); const link = document.createElement('a'); link.href = canvas.toDataURL(); link.download = 'ticket.png'; link.click(); } }