view data fixes
This commit is contained in:
@@ -1,27 +1,32 @@
|
||||
import { LeagueCardViewModel } from './LeagueCardViewModel';
|
||||
import { TeamCardViewModel } from './TeamCardViewModel';
|
||||
import { UpcomingRaceCardViewModel } from './UpcomingRaceCardViewModel';
|
||||
|
||||
interface HomeDiscoveryDTO {
|
||||
topLeagues: LeagueCardViewModel[];
|
||||
teams: TeamCardViewModel[];
|
||||
upcomingRaces: UpcomingRaceCardViewModel[];
|
||||
}
|
||||
import type { HomeDiscoveryViewData } from '@/lib/view-data/HomeDiscoveryViewData';
|
||||
|
||||
/**
|
||||
* Home discovery view model
|
||||
* Aggregates discovery data for the landing page.
|
||||
*/
|
||||
import { ViewModel } from "../contracts/view-models/ViewModel";
|
||||
import { ViewModel } from '../contracts/view-models/ViewModel';
|
||||
|
||||
export class HomeDiscoveryViewModel extends ViewModel {
|
||||
readonly topLeagues: LeagueCardViewModel[];
|
||||
readonly teams: TeamCardViewModel[];
|
||||
readonly upcomingRaces: UpcomingRaceCardViewModel[];
|
||||
readonly topLeagues: HomeDiscoveryViewData['topLeagues'];
|
||||
readonly teams: HomeDiscoveryViewData['teams'];
|
||||
readonly upcomingRaces: HomeDiscoveryViewData['upcomingRaces'];
|
||||
|
||||
constructor(dto: HomeDiscoveryDTO) {
|
||||
this.topLeagues = dto.topLeagues;
|
||||
this.teams = dto.teams;
|
||||
this.upcomingRaces = dto.upcomingRaces;
|
||||
constructor(viewData: HomeDiscoveryViewData) {
|
||||
super();
|
||||
this.topLeagues = viewData.topLeagues;
|
||||
this.teams = viewData.teams;
|
||||
this.upcomingRaces = viewData.upcomingRaces;
|
||||
}
|
||||
|
||||
get hasTopLeagues(): boolean {
|
||||
return this.topLeagues.length > 0;
|
||||
}
|
||||
|
||||
get hasTeams(): boolean {
|
||||
return this.teams.length > 0;
|
||||
}
|
||||
|
||||
get hasUpcomingRaces(): boolean {
|
||||
return this.upcomingRaces.length > 0;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user