app-outlet/app-outlet

View on GitHub
src/app/ui/components/card/card.component.ts

Summary

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

import { CardDto } from './card.dto';

@Component({
    selector: 'app-card',
    templateUrl: './card.component.html',
    styleUrls: ['./card.component.scss'],
})
export class CardComponent {
    @Input() application?: CardDto = undefined;

    @Output() applicationClicked = new EventEmitter<CardDto>();

    constructor(private router: Router) {}

    async click(app?: CardDto): Promise<void> {
        if (app) {
            await this.router.navigate(['application', app.id]);
            this.applicationClicked.emit(app);
        }
    }

    getPackageIcon(packageType?: string): string {
        switch (packageType) {
            case 'SNAP':
                return 'assets/icon/snap.png';
            case 'FLATPAK':
                return 'assets/icon/flatpak.png';
            case 'APP_IMAGE':
                return 'assets/icon/appimage.png';
            default:
                return '';
        }
    }
}