view data fixes
This commit is contained in:
@@ -1,41 +1,32 @@
|
||||
import type { LeaderboardDriverItem } from '@/lib/view-data/LeaderboardDriverItem';
|
||||
|
||||
import { ViewModel } from "../contracts/view-models/ViewModel";
|
||||
import type { LeaderboardDriverItem } from '../view-data/LeaderboardDriverItem';
|
||||
import { SkillLevelDisplay } from "../display-objects/SkillLevelDisplay";
|
||||
import { SkillLevelIconDisplay } from "../display-objects/SkillLevelIconDisplay";
|
||||
import { WinRateDisplay } from "../display-objects/WinRateDisplay";
|
||||
import { RatingTrendDisplay } from "../display-objects/RatingTrendDisplay";
|
||||
|
||||
export class DriverLeaderboardItemViewModel extends ViewModel {
|
||||
id: string;
|
||||
name: string;
|
||||
rating: number;
|
||||
skillLevel: string;
|
||||
nationality: string;
|
||||
racesCompleted: number;
|
||||
wins: number;
|
||||
podiums: number;
|
||||
rank: number;
|
||||
avatarUrl: string;
|
||||
position: number;
|
||||
private previousRating: number | undefined;
|
||||
private readonly data: LeaderboardDriverItem;
|
||||
private readonly previousRating: number | undefined;
|
||||
|
||||
constructor(viewData: LeaderboardDriverItem, previousRating?: number) {
|
||||
constructor(data: LeaderboardDriverItem, previousRating?: number) {
|
||||
super();
|
||||
this.id = viewData.id;
|
||||
this.name = viewData.name;
|
||||
this.rating = viewData.rating;
|
||||
this.skillLevel = viewData.skillLevel;
|
||||
this.nationality = viewData.nationality;
|
||||
this.racesCompleted = viewData.racesCompleted;
|
||||
this.wins = viewData.wins;
|
||||
this.podiums = viewData.podiums;
|
||||
this.rank = viewData.rank;
|
||||
this.avatarUrl = viewData.avatarUrl;
|
||||
this.position = viewData.position;
|
||||
this.data = data;
|
||||
this.previousRating = previousRating;
|
||||
}
|
||||
|
||||
get id(): string { return this.data.id; }
|
||||
get name(): string { return this.data.name; }
|
||||
get rating(): number { return this.data.rating; }
|
||||
get skillLevel(): string { return this.data.skillLevel; }
|
||||
get nationality(): string { return this.data.nationality; }
|
||||
get racesCompleted(): number { return this.data.racesCompleted; }
|
||||
get wins(): number { return this.data.wins; }
|
||||
get podiums(): number { return this.data.podiums; }
|
||||
get rank(): number { return this.data.rank; }
|
||||
get avatarUrl(): string { return this.data.avatarUrl; }
|
||||
get position(): number { return this.data.position; }
|
||||
|
||||
/** UI-specific: Skill level color */
|
||||
get skillLevelColor(): string {
|
||||
return SkillLevelDisplay.getColor(this.skillLevel);
|
||||
|
||||
Reference in New Issue
Block a user