view data fixes
Some checks failed
Contract Testing / contract-tests (pull_request) Failing after 7m11s
Contract Testing / contract-snapshot (pull_request) Has been skipped

This commit is contained in:
2026-01-24 23:29:55 +01:00
parent c1750a33dd
commit 1b0a1f4aee
134 changed files with 10380 additions and 415 deletions

View File

@@ -1,4 +1,5 @@
import { ErrorScreen } from '@/components/errors/ErrorScreen';
import { ViewData } from '@/lib/contracts/view-data/ViewData';
export interface FatalErrorViewData extends ViewData {
error: Error & { digest?: string };

View File

@@ -46,8 +46,8 @@ export function LeagueRulebookTemplate({
}
const { scoringConfig } = viewData;
const primaryChampionship = scoringConfig.championships.find(c => c.type === 'driver') ?? scoringConfig.championships[0];
const positionPoints = viewData.positionPoints;
const primaryChampionship = scoringConfig.championships.find((c: any) => c.type === 'driver') ?? scoringConfig.championships[0];
const positionPoints = primaryChampionship?.pointsPreview || [];
return (
<Stack gap={6}>

View File

@@ -34,9 +34,9 @@ export function LeagueSettingsTemplate({ viewData }: LeagueSettingsTemplateProps
<Grid responsiveGridCols={{ base: 1, md: 2 }} gap={6}>
<InfoItem label="Name" value={viewData.league.name} />
<InfoItem label="Visibility" value={viewData.league.visibility} capitalize />
<InfoItem label="Visibility" value={viewData.config.basics.visibility} capitalize />
<GridItem responsiveColSpan={{ base: 1, md: 2 }}>
<InfoItem label="Description" value={viewData.league.description} />
<InfoItem label="Description" value={viewData.config.basics.description || ''} />
</GridItem>
<InfoItem label="Created" value={new Date(viewData.league.createdAt).toLocaleDateString()} />
<InfoItem label="Owner ID" value={viewData.league.ownerId} />
@@ -58,10 +58,10 @@ export function LeagueSettingsTemplate({ viewData }: LeagueSettingsTemplateProps
</Stack>
<Grid responsiveGridCols={{ base: 1, md: 2 }} gap={6}>
<ConfigItem icon={Users} label="Max Drivers" value={viewData.config.maxDrivers} />
<ConfigItem icon={Shield} label="Require Approval" value={viewData.config.requireApproval ? 'Yes' : 'No'} />
<ConfigItem icon={Clock} label="Allow Late Join" value={viewData.config.allowLateJoin ? 'Yes' : 'No'} />
<ConfigItem icon={Trophy} label="Scoring Preset" value={viewData.config.scoringPresetId} />
<ConfigItem icon={Users} label="Max Drivers" value={viewData.config.structure.maxDrivers || 0} />
<ConfigItem icon={Shield} label="Require Approval" value={viewData.config.stewarding.requireDefense ? 'Yes' : 'No'} />
<ConfigItem icon={Clock} label="Allow Late Join" value={'No'} />
<ConfigItem icon={Trophy} label="Scoring Preset" value={viewData.config.scoring.patternId || 'None'} />
</Grid>
</Stack>
</Surface>

View File

@@ -14,6 +14,7 @@ import { GridItem } from '@/ui/GridItem';
import { Skeleton } from '@/ui/Skeleton';
import { Stack } from '@/ui/Stack';
import { Text } from '@/ui/Text';
import { ViewData } from '@/lib/contracts/view-data/ViewData';
export interface RaceDetailEntryViewModel {
id: string;

View File

@@ -14,6 +14,7 @@ import { Icon } from '@/ui/Icon';
import { InfoBanner } from '@/ui/InfoBanner';
import { Stack } from '@/ui/Stack';
import { Text } from '@/ui/Text';
import { ViewData } from '@/lib/contracts/view-data/ViewData';
import {
Building2,
CreditCard,

View File

@@ -15,6 +15,7 @@ import {
Search
} from 'lucide-react';
import React from 'react';
import { ViewData } from '@/lib/contracts/view-data/ViewData';
export type SponsorshipType = 'all' | 'leagues' | 'teams' | 'drivers' | 'races' | 'platform';
export type SponsorshipStatus = 'all' | 'active' | 'pending_approval' | 'approved' | 'rejected' | 'expired';

View File

@@ -34,7 +34,7 @@ import {
type LucideIcon
} from 'lucide-react';
export interface SponsorLeagueDetailViewData extends ViewData extends ViewData {
export interface SponsorLeagueDetailViewData extends ViewData {
league: {
id: string;
name: string;

View File

@@ -17,6 +17,7 @@ import { Link } from '@/ui/Link';
import { Stack } from '@/ui/Stack';
import { Surface } from '@/ui/Surface';
import { Text } from '@/ui/Text';
import { ViewData } from '@/lib/contracts/view-data/ViewData';
import {
Car,
Megaphone,

View File

@@ -18,6 +18,7 @@ import {
Save
} from 'lucide-react';
import React from 'react';
import { ViewData } from '@/lib/contracts/view-data/ViewData';
export interface SponsorSettingsViewData extends ViewData {
profile: {

View File

@@ -2,6 +2,7 @@ import { Box } from '@/ui/Box';
import { Stack } from '@/ui/Stack';
import { Surface } from '@/ui/Surface';
import { Text } from '@/ui/Text';
import { ViewData } from '@/lib/contracts/view-data/ViewData';
export interface GlobalFooterViewData extends ViewData {}

View File

@@ -7,6 +7,7 @@ import { BrandMark } from '@/ui/BrandMark';
import { Stack } from '@/ui/Stack';
import { Text } from '@/ui/Text';
import { usePathname } from 'next/navigation';
import { ViewData } from '@/lib/contracts/view-data/ViewData';
export interface HeaderContentViewData extends ViewData {}

View File

@@ -12,6 +12,7 @@ import { Box } from '@/ui/Box';
import { Stack } from '@/ui/Stack';
import { Text } from '@/ui/Text';
import { FormEvent } from 'react';
import { ViewData } from '@/lib/contracts/view-data/ViewData';
type OnboardingStep = 1 | 2;