noydb/oworms-ui

View on GitHub
src/app/component/word/card/word-card.component.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { Component, Input } from '@angular/core';
import { Router } from '@angular/router';

import { AppRoutes } from '../../../util/app.routes';
import { Unsubscribes } from '../../../util/auto-unsubscribe.directive';

import { Word } from '../../../model/word.interface';

@Component({
    selector: 'ow-word-card',
    templateUrl: './word-card.component.html',
    styleUrls: ['./word-card.component.scss']
})
@Unsubscribes()
export class WordCardComponent {

    @Input()
    word: Word;

    constructor(private readonly router: Router) {
    }

    getViews(daWord: Word): string {
        switch (daWord?.timesViewed) {
            case 0:
                return 'No views';
            case 1:
                return '1 view';
            case null:
                return 'n/a';
            default:
                return daWord.timesViewed + ' views';
        }
    }

    viewWordDetails(): void {
        void this.router.navigate([AppRoutes.getDetail(this.word.uuid)]);
    }
}