'use client'; import { useState, useEffect } from 'react'; import { ArrowLeft, Loader2, AlertCircle, Lock } from 'lucide-react'; import Link from 'next/link'; import { getAdminClubDetail } from '@/src/lib/api/admin-clubs'; import type { AdminClubDetail, AdminApiError } from '@/src/types/admin-api'; import useTranslation from '@/src/hooks/useTranslation'; import FacilityTabNavigation from './FacilityTabNavigation'; interface FacilityDetailHeaderProps { facilityId: number; children: React.ReactNode; } export default function FacilityDetailHeader({ facilityId, children }: FacilityDetailHeaderProps) { const { locale } = useTranslation(); const [facilityDetail, setFacilityDetail] = useState(null); const [error, setError] = useState(null); const [loading, setLoading] = useState(true); useEffect(() => { loadFacilityDetail(); }, [facilityId]); async function loadFacilityDetail() { setLoading(true); const result = await getAdminClubDetail(facilityId); if (result.success) { setFacilityDetail(result.data); setError(null); } else { setError(result.error); setFacilityDetail(null); } setLoading(false); } // Loading state if (loading) { return (

Loading facility details...

); } // Authentication error (401) if (error && error.status === 401) { return (

Authentication Required

Please log in to access the venue management portal.

); } // Forbidden error (403) if (error && error.status === 403) { return (

Access Denied

{error.detail}

Back to facilities
); } // Other API errors if (error) { return (

Error Loading Facility

{error.detail}

Error code: {error.code}

Back to facilities
); } if (!facilityDetail) { return null; } return (
{/* Breadcrumb */}
Back to facilities
{/* Facility Header */}

{facilityDetail.facility.name}

{facilityDetail.facility.timezone}

{/* Tab Navigation */} {/* Content */} {children}
); }