Files
MetaCourse/src/app/components/course-card/course-card.ts
T
2026-05-05 10:53:52 +02:00

32 lines
774 B
TypeScript

import { Component, input, output } from '@angular/core';
import { NzIconModule } from 'ng-zorro-antd/icon';
import { Course, CourseProgress } from '../../models/types';
@Component({
selector: 'app-course-card',
imports: [NzIconModule],
templateUrl: './course-card.html',
styleUrl: './course-card.css'
})
export class CourseCard {
course = input.required<Course>();
progress = input<CourseProgress | null>(null);
clicked = output<Course>();
get progressPercent(): number {
return Math.round(this.progress()?.progressPercentage ?? 0);
}
get isCompleted(): boolean {
return this.progressPercent === 100;
}
get isEnrolled(): boolean {
return this.progress() !== null;
}
onClick(): void {
this.clicked.emit(this.course());
}
}