Files
gridpilot.gg/apps/website/lib/builders/view-data/LeagueSponsorshipsViewDataBuilder.ts
2026-01-24 00:52:27 +01:00

28 lines
1.1 KiB
TypeScript

import { DateDisplay } from '@/lib/display-objects/DateDisplay';
import { StatusDisplay } from '@/lib/display-objects/StatusDisplay';
import { LeagueSponsorshipsApiDto } from '@/lib/types/tbd/LeagueSponsorshipsApiDto';
import { LeagueSponsorshipsViewData } from '@/lib/view-data/LeagueSponsorshipsViewData';
import { ViewDataBuilder } from "../../contracts/builders/ViewDataBuilder";
export class LeagueSponsorshipsViewDataBuilder implements ViewDataBuilder<any, any> {
build(input: any): any {
return LeagueSponsorshipsViewDataBuilder.build(input);
}
static build(apiDto: LeagueSponsorshipsApiDto): LeagueSponsorshipsViewData {
return {
leagueId: apiDto.leagueId,
activeTab: 'overview',
onTabChange: () => {},
league: apiDto.league,
sponsorshipSlots: apiDto.sponsorshipSlots,
sponsorshipRequests: apiDto.sponsorshipRequests.map(r => ({
...r,
formattedRequestedAt: DateDisplay.formatShort(r.requestedAt),
statusLabel: StatusDisplay.protestStatus(r.status), // Reusing protest status for now
})),
};
}
}