'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
)}
);
}