All files / app/pages/not-found not-found.ts

54.54% Statements 12/22
65% Branches 13/20
50% Functions 2/4
44.44% Lines 8/18

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47                    3x 1x 1x   1x 1x   1x 1x           1x                                            
import { Component, computed, inject } from '@angular/core';
import { ActivatedRoute, RouterLink } from '@angular/router';
import { TranslocoModule, TranslocoService } from '@jsverse/transloco';
 
@Component({
  selector: 'app-not-found',
  imports: [RouterLink, TranslocoModule],
  templateUrl: './not-found.html',
  styleUrl: './not-found.scss',
})
export class NotFound {
  private readonly route = inject(ActivatedRoute);
  private readonly transloco = inject(TranslocoService);
 
  readonly missingType = computed(() => {
    const key = this.route.snapshot.queryParamMap.keys[0];
 
    Eif (!key) {
      return null;
    }
 
    return this.formatType(key);
  });
 
  readonly missingId = computed(() => {
    const key = this.route.snapshot.queryParamMap.keys[0];
 
    if (!key) {
      return null;
    }
 
    const id = this.route.snapshot.queryParamMap.get(key)?.trim();
    return id || null;
  });
 
  private formatType(rawType: string): string {
    const cleaned = rawType.replace(/[_-]+/g, ' ').trim();
 
    if (!cleaned) {
      return this.transloco.translate('notFound.defaultType');
    }
 
    return cleaned.charAt(0).toUpperCase() + cleaned.slice(1);
  }
 
}