Spaces:
Sleeping
Sleeping
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"; | |
({ | |
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 { | |
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)) | |
); | |
} | |
} | |