You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

3 lines
1.2 KiB

import { Component, inject, signal } from '@angular/core'; import { ActivatedRoute, RouterLink } from '@angular/router'; import { ApiService } from '../core/api.service'; import { MATERIAL } from '../shared/material'; import { authStyles } from './register.component';
@Component({standalone:true,imports:[RouterLink,...MATERIAL],template:`<main class="auth-page"><mat-card><mat-card-content><mat-icon class="hero-icon">mark_email_read</mat-icon><h1>E-Mail bestätigen</h1>@if(loading()){<mat-progress-bar mode="indeterminate"/>} @else if(error()){<p class="error">{{error()}}</p>} @else {<div class="success">{{message()}}</div>}<a mat-button routerLink="/login">Zur Anmeldung</a></mat-card-content></mat-card></main>`,styles:[authStyles()]})
export class ConfirmEmailComponent{loading=signal(true);error=signal('');message=signal('');private token=inject(ActivatedRoute).snapshot.queryParamMap.get('token')||'';constructor(api:ApiService){if(!this.token){this.loading.set(false);this.error.set('Der Bestätigungslink ist ungültig.');}else api.confirmEmail(this.token).subscribe({next:r=>{this.loading.set(false);this.message.set(r.message);},error:e=>{this.loading.set(false);this.error.set(e.error?.errors?.join(', ')||'Bestätigung fehlgeschlagen');}});}}