'use client'; import { useState } from 'react'; import { useParams, useRouter } from 'next/navigation'; import { useQuery } from '@tanstack/react-query'; import { DriverProfileTemplate } from '@/templates/DriverProfileTemplate'; import { useInject } from '@/lib/di/hooks/useInject'; import { DRIVER_SERVICE_TOKEN, TEAM_SERVICE_TOKEN } from '@/lib/di/tokens'; import SponsorInsightsCard, { useSponsorMode, MetricBuilders, SlotTemplates } from '@/components/sponsors/SponsorInsightsCard'; import { Car } from 'lucide-react'; interface Team { id: string; name: string; } interface TeamMembershipInfo { team: Team; role: string; joinedAt: Date; } export function DriverProfileInteractive() { const router = useRouter(); const params = useParams(); const driverId = params.id as string; const driverService = useInject(DRIVER_SERVICE_TOKEN); const teamService = useInject(TEAM_SERVICE_TOKEN); const [activeTab, setActiveTab] = useState<'overview' | 'stats'>('overview'); const [friendRequestSent, setFriendRequestSent] = useState(false); const isSponsorMode = useSponsorMode(); // Fetch driver profile using React-Query const { data: driverProfile, isLoading, error, refetch } = useQuery({ queryKey: ['driverProfile', driverId], queryFn: () => driverService.getDriverProfile(driverId), }); // Fetch team memberships using React-Query const { data: allTeamMemberships } = useQuery({ queryKey: ['driverTeamMemberships', driverId], queryFn: async () => { if (!driverProfile?.currentDriver) return []; const allTeams = await teamService.getAllTeams(); const memberships: TeamMembershipInfo[] = []; for (const team of allTeams) { const teamMembers = await teamService.getTeamMembers(team.id, driverId, ''); const membership = teamMembers.find(member => member.driverId === driverId); if (membership) { memberships.push({ team: { id: team.id, name: team.name, } as Team, role: membership.role, joinedAt: new Date(membership.joinedAt), }); } } return memberships; }, enabled: !!driverProfile?.currentDriver, }); const handleAddFriend = () => { setFriendRequestSent(true); }; const handleBackClick = () => { router.push('/drivers'); }; // Build sponsor insights for driver const friendsCount = driverProfile?.socialSummary?.friends?.length ?? 0; const stats = driverProfile?.stats || null; const driver = driverProfile?.currentDriver; const driverMetrics = [ MetricBuilders.rating(stats?.rating ?? 0, 'Driver Rating'), MetricBuilders.views((friendsCount * 8) + 50), MetricBuilders.engagement(stats?.consistency ?? 75), MetricBuilders.reach((friendsCount * 12) + 100), ]; const sponsorInsights = isSponsorMode && driver ? ( ) : null; // Loading state if (isLoading) { return (

Loading driver profile...

); } // Error state if (error) { return (
⚠️

Error loading driver profile

{error.message}

); } // Empty state if (!driverProfile) { return (

Driver not found

The driver profile may not exist or you may not have access

); } return ( ); }