view data fixes
This commit is contained in:
@@ -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 };
|
||||
|
||||
@@ -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}>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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: {
|
||||
|
||||
@@ -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 {}
|
||||
|
||||
|
||||
@@ -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 {}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user