Files
gridpilot.gg/apps/website/lib/view-models/CreateTeamViewModel.ts
Marc Mintel d97f50ed72
Some checks failed
Contract Testing / contract-tests (pull_request) Failing after 6m4s
Contract Testing / contract-snapshot (pull_request) Has been skipped
view data fixes
2026-01-23 11:59:49 +01:00

31 lines
1012 B
TypeScript

import type { CreateTeamViewData } from '../view-data/CreateTeamViewData';
import { ViewModel } from "../contracts/view-models/ViewModel";
import { TeamCreationStatusDisplay } from '../display-objects/TeamCreationStatusDisplay';
/**
* View Model for Create Team Result
*
* Represents the result of creating a team in a UI-ready format.
* Composes Display Objects and transforms ViewData for UI consumption.
*/
export class CreateTeamViewModel extends ViewModel {
readonly teamId: string;
readonly success: boolean;
// UI-specific derived fields (primitive outputs only)
readonly successMessage: string;
constructor(viewData: CreateTeamViewData) {
super();
this.teamId = viewData.teamId;
this.success = viewData.success;
// Derive UI-specific fields using Display Object
this.successMessage = TeamCreationStatusDisplay.statusMessage(this.success);
}
/** UI-specific: Whether team creation was successful */
get isSuccessful(): boolean {
return this.success;
}
}