'use client'; import type { ProfileTab } from '@/components/profile/ProfileTabs'; import type { DriverProfileViewData } from '@/lib/types/view-data/DriverProfileViewData'; import { DriverProfileTemplate } from '@/templates/DriverProfileTemplate'; import { Container } from '@/ui/Container'; import { Stack } from '@/ui/Stack'; import { Text } from '@/ui/Text'; import { useRouter } from 'next/navigation'; import { useState } from 'react'; interface DriverProfilePageClientProps { viewData: DriverProfileViewData | null; error?: string; empty?: { title: string; description: string; }; } /** * DriverProfilePageClient * * Client component that: * 1. Handles UI state (tabs, friend requests) * 2. Passes ViewData directly to Template */ export function DriverProfilePageClient({ viewData, error, empty }: DriverProfilePageClientProps) { const router = useRouter(); // UI State (UI-only concerns) const [activeTab, setActiveTab] = useState('overview'); const [friendRequestSent, setFriendRequestSent] = useState(false); // Event handlers (UI-only concerns) const handleAddFriend = () => { setFriendRequestSent(true); }; const handleBackClick = () => { router.push('/drivers'); }; // Handle error/empty states if (error) { return ( Error loading driver profile Please try again later ); } if (!viewData || !viewData.currentDriver) { if (empty) { return ( {empty.title} {empty.description} ); } return null; } // Pass ViewData directly to template return ( ); }