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)) | |
| ); | |
| } | |
| } | |