'use client'; import { AchievementGrid } from '@/components/achievements/AchievementGrid'; import { CreateDriverForm } from '@/components/drivers/CreateDriverForm'; import { ProfileDetailsPanel } from '@/components/profile/ProfileDetailsPanel'; import { ProfileHeader } from '@/components/profile/ProfileHeader'; import { ProfileNavTabs, type ProfileTab } from '@/components/profile/ProfileNavTabs'; import { ProfileStatGrid } from '@/components/profile/ProfileStatGrid'; import { SessionHistoryTable } from '@/components/profile/SessionHistoryTable'; import { TeamMembershipGrid } from '@/components/teams/TeamMembershipGrid'; import type { ProfileViewData } from '@/lib/view-data/ProfileViewData'; import { Box } from '@/ui/Box'; import { Card } from '@/ui/Card'; import { Heading } from '@/ui/Heading'; import { Icon } from '@/ui/Icon'; import { Stack } from '@/ui/Stack'; import { Surface } from '@/ui/Surface'; import { Text } from '@/ui/Text'; import { User } from 'lucide-react'; interface ProfileTemplateProps { viewData: ProfileViewData; mode: 'profile-exists' | 'needs-profile'; activeTab: ProfileTab; onTabChange: (tab: ProfileTab) => void; friendRequestSent: boolean; onFriendRequestSend: () => void; } export function ProfileTemplate({ viewData, mode, activeTab, onTabChange, friendRequestSent, onFriendRequestSend, }: ProfileTemplateProps) { if (mode === 'needs-profile') { return ( Create Your Driver Profile Join the GridPilot community and start your racing journey Get Started Create your driver profile to join leagues, compete in races, and connect with other drivers. {}} isPending={false} /> ); } return ( {activeTab === 'overview' && ( {viewData.teamMemberships.length > 0 && ( Teams ({ team: { id: m.teamId, name: m.teamName }, role: m.roleLabel, joinedAtLabel: m.joinedAtLabel }))} /> )} {viewData.extendedProfile && ( Achievements {viewData.extendedProfile.achievements.length} earned ({ ...a, rarity: a.rarityLabel, earnedAtLabel: a.earnedAtLabel }))} /> )} )} {activeTab === 'history' && ( Race History )} {activeTab === 'stats' && viewData.stats && ( Performance Overview )} ); }