Spaces:
Sleeping
Sleeping
File size: 1,698 Bytes
1bc149f |
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 48 49 50 51 52 53 54 55 56 57 58 59 |
import {Component, Input, OnChanges, SimpleChanges} from '@angular/core';
import {AboutComponent} from "../../about/about.component";
import {MatTab, MatTabGroup} from "@angular/material/tabs";
import {MatCard, MatCardContent} from "@angular/material/card";
import {AppStateService} from "../../../../state_management/services/app-state.service";
import {filter, map} from "rxjs";
import {DatasetComponent} from "../../datasets/dataset/dataset.component";
import {AsyncPipe, NgForOf, NgIf} from "@angular/common";
import {SubmissionsComponent} from "../../submissions/submissions.component";
import {LeaderboardComponent} from "../../leaderboards/leaderboard/leaderboard.component";
import {LeaderboardsComponent} from "../../leaderboards/leaderboards.component";
import {DatasetsComponent} from "../../datasets/datasets.component";
@Component({
selector: 'app-task',
standalone: true,
imports: [
AboutComponent,
MatTabGroup,
MatTab,
MatCard,
MatCardContent,
DatasetComponent,
NgForOf,
AsyncPipe,
SubmissionsComponent,
LeaderboardComponent,
LeaderboardsComponent,
NgIf,
DatasetsComponent
],
templateUrl: './task.component.html',
styleUrl: './task.component.css'
})
export class TaskComponent implements OnChanges {
@Input() task: string = '';
datasets: any;
constructor(
private state: AppStateService
) {
this.updateDatasets();
}
ngOnChanges(changes: SimpleChanges): void {
if (changes['task']) {
this.updateDatasets();
}
}
private updateDatasets() {
this.datasets = this.state.state$.pipe(
map(state => state.datasets.filter(dataset => dataset.task === this.task))
);
}
}
|