website refactor

This commit is contained in:
2026-01-20 01:22:05 +01:00
parent f8e7ec7948
commit 30a31dc44f
21 changed files with 1242 additions and 393 deletions

View File

@@ -1,22 +1,13 @@
'use client';
import { HomeFeatureDescription } from '@/components/home/HomeFeatureDescription';
import { HomeFeatureSection } from '@/components/home/HomeFeatureSection';
import { HomeFooterCTA } from '@/components/home/HomeFooterCTA';
import { HomeHeader } from '@/components/home/HomeHeader';
import { HomeStatsStrip } from '@/components/home/HomeStatsStrip';
import { LeagueSummaryPanel } from '@/components/home/LeagueSummaryPanel';
import { QuickLinksPanel } from '@/components/home/QuickLinksPanel';
import { RecentRacesPanel } from '@/components/home/RecentRacesPanel';
import { TeamSummaryPanel } from '@/components/home/TeamSummaryPanel';
import { FAQ } from '@/components/landing/FAQ';
import { CareerProgressionMockup } from '@/components/mockups/CareerProgressionMockup';
import { CompanionAutomationMockup } from '@/components/mockups/CompanionAutomationMockup';
import { RaceHistoryMockup } from '@/components/mockups/RaceHistoryMockup';
import { SimPlatformMockup } from '@/components/mockups/SimPlatformMockup';
import { ModeGuard } from '@/components/shared/ModeGuard';
import { DiscoverySection } from '@/ui/DiscoverySection';
import { Box } from '@/ui/Box';
import { Hero } from '@/components/home/Hero';
import { TelemetryStrip } from '@/components/home/TelemetryStrip';
import { ValuePillars } from '@/components/home/ValuePillars';
import { StewardingPreview } from '@/components/home/StewardingPreview';
import { LeagueIdentityPreview } from '@/components/home/LeagueIdentityPreview';
import { MigrationSection } from '@/components/home/MigrationSection';
import { CtaSection } from '@/components/home/CtaSection';
import { Stack } from '@/ui/Stack';
export interface HomeViewData {
isAlpha: boolean;
@@ -44,118 +35,33 @@ interface HomeTemplateProps {
}
/**
* HomeTemplate - Redesigned for "Precision Racing Minimal" theme.
* Composes semantic components instead of generic layout primitives.
* HomeTemplate - Radically redesigned for League Admin focus.
* Theme: Modern Precision.
* Architecture: Composition of semantic components.
*/
export function HomeTemplate({ viewData }: HomeTemplateProps) {
return (
<Box>
{/* Hero Section */}
<HomeHeader
title="Modern Motorsport Infrastructure."
subtitle="Precision Racing Infrastructure"
description="GridPilot gives your league racing a real home. Results, standings, teams, and career progression — engineered for precision and control."
primaryAction={{ label: 'Join the Grid', href: '#' }}
secondaryAction={{ label: 'Explore Leagues', href: '#' }}
/>
<main>
{/* Hero Section - Admin Focus */}
<Hero />
{/* Telemetry Status Strip */}
<HomeStatsStrip />
{/* Admin Pain/Solution Strip */}
<TelemetryStrip />
{/* Quick Actions Bar */}
<QuickLinksPanel />
{/* Core Admin Features */}
<ValuePillars />
{/* Feature Sections */}
<HomeFeatureSection
heading="A Persistent Identity"
accentColor="primary"
layout="text-left"
description={
<HomeFeatureDescription
lead="Your races, your seasons, your progress — finally in one place."
items={[
'Lifetime stats and season history across all your leagues',
'Track your performance, consistency, and team contributions',
'Your own rating that reflects real league competition',
]}
quote="iRacing gives you physics. GridPilot gives you a career."
accentColor="primary"
/>
}
mockup={<CareerProgressionMockup />}
/>
{/* Stewarding Workflow Preview */}
<StewardingPreview />
<HomeFeatureSection
heading="Results That Actually Stay"
accentColor="aqua"
layout="text-right"
description={
<HomeFeatureDescription
lead="Every race you run stays with you."
items={[
'Your stats, your team, your story — all connected',
'One race result updates your profile, team points, rating, and season history',
'No more fragmented data across spreadsheets and forums',
]}
quote="Your racing career, finally in one place."
accentColor="aqua"
/>
}
mockup={<RaceHistoryMockup />}
/>
{/* League Identity Showcase */}
<LeagueIdentityPreview />
<HomeFeatureSection
heading="Automatic Session Creation"
accentColor="amber"
layout="text-left"
description={
<HomeFeatureDescription
lead="Setting up league races used to mean clicking through iRacing's wizard 20 times."
items={[
'Our companion app syncs with your league schedule',
'When it\'s race time, it creates the iRacing session automatically',
'No clicking through wizards. No manual setup',
]}
quote="Automation instead of repetition."
accentColor="amber"
/>
}
mockup={<CompanionAutomationMockup />}
/>
{/* Migration Offer */}
<MigrationSection />
<HomeFeatureSection
heading="Built for iRacing. Ready for the future."
accentColor="primary"
layout="text-right"
description={
<HomeFeatureDescription
lead="Right now, we're focused on making iRacing league racing better."
items={[
'But sims come and go. Your leagues, your teams, your rating — those stay.',
]}
quote="GridPilot is built to outlast any single platform."
accentColor="gray"
/>
}
mockup={<SimPlatformMockup />}
/>
{/* Discovery Grid */}
<ModeGuard feature="alpha_discovery">
<DiscoverySection
title="DISCOVER THE GRID"
subtitle="Live Ecosystem"
description="Explore leagues, teams, and races that make up the GridPilot ecosystem."
>
<LeagueSummaryPanel leagues={viewData.topLeagues} />
<TeamSummaryPanel teams={viewData.teams} />
<RecentRacesPanel races={viewData.upcomingRaces} />
</DiscoverySection>
</ModeGuard>
{/* CTA & FAQ */}
<HomeFooterCTA />
<FAQ />
</Box>
{/* Final CTA */}
<CtaSection />
</main>
);
}