import { apiClient } from '@/lib/api-client'; import { setCurrentComplexSlug } from '@/lib/current-complex'; import { useQuery } from '@tanstack/react-query'; import { Building2, MapPin, Settings, Users } from 'lucide-react'; import { useEffect, useState } from 'react'; import { ComplexCourtsSection } from './components/complex-courts-section'; import { ComplexDetailsSection } from './components/complex-details-section'; import { ComplexUsersSection } from './components/complex-users-section'; type ComplexSettingsPageProps = { complexSlug: string; }; type TabOption = 'details' | 'courts' | 'users'; export function ComplexSettingsPage({ complexSlug }: ComplexSettingsPageProps) { const [activeTab, setActiveTab] = useState('details'); useEffect(() => { setCurrentComplexSlug(complexSlug); }, [complexSlug]); const complexQuery = useQuery({ queryKey: ['complex-by-slug', complexSlug], queryFn: () => apiClient.complexes.getBySlug(complexSlug), }); const myComplexesQuery = useQuery({ queryKey: ['my-complexes'], queryFn: () => apiClient.complexes.listMine(), }); const complexId = complexQuery.data?.id ?? null; const currentMembership = myComplexesQuery.data?.find( (complex) => complex.complexSlug === complexSlug ); const canManageUsers = currentMembership?.role === 'ADMIN'; const tabs = [ { id: 'details' as const, label: 'Datos del complejo', icon: Building2 }, { id: 'courts' as const, label: 'Canchas', icon: MapPin }, { id: 'users' as const, label: 'Usuarios', icon: Users }, ]; return (
Administración del complejo

Configuración del complejo

{complexQuery.data?.complexName ?? 'Configurá los datos del complejo, las canchas y los usuarios.'}

{activeTab === 'details' && ( )} {activeTab === 'courts' && } {activeTab === 'users' && ( )}
); }