// src/components/ConfiguracionGeneral.tsx import { useState, useEffect } from 'react'; import { useQueryClient } from '@tanstack/react-query'; import { getAgrupaciones, getConfiguracion, updateConfiguracion } from '../services/apiService'; import type { AgrupacionPolitica } from '../types'; import './AgrupacionesManager.css'; export const ConfiguracionGeneral = () => { const queryClient = useQueryClient(); const [agrupaciones, setAgrupaciones] = useState([]); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); const [presidenciaSenadoId, setPresidenciaSenadoId] = useState(''); // Renombramos el estado para mayor claridad const [modoOficialActivo, setModoOficialActivo] = useState(false); useEffect(() => { const loadInitialData = async () => { try { setLoading(true); setError(null); const [agrupacionesData, configData] = await Promise.all([getAgrupaciones(), getConfiguracion()]); setAgrupaciones(agrupacionesData); setPresidenciaSenadoId(configData.PresidenciaSenadores || ''); setModoOficialActivo(configData.UsarDatosDeBancadasOficiales === 'true'); } catch (err) { console.error("Error al cargar datos de configuración:", err); setError("No se pudieron cargar los datos necesarios para la configuración."); } finally { setLoading(false); } }; loadInitialData(); }, []); const handleSave = async () => { try { await updateConfiguracion({ "PresidenciaSenadores": presidenciaSenadoId, "UsarDatosDeBancadasOficiales": modoOficialActivo.toString() }); await queryClient.invalidateQueries({ queryKey: ['composicionCongreso'] }); await queryClient.invalidateQueries({ queryKey: ['bancadasDetalle'] }); alert('Configuración guardada.'); } catch { alert('Error al guardar.'); } }; if (loading) return

Cargando...

; if (error) return

{error}

; return (

Configuración General de Visualización

Si está activo, el sitio público mostrará la composición de bancas y los ocupantes definidos manualmente en este panel. Si está inactivo, mostrará la proyección en tiempo real de la elección.

Seleccione el partido político al que pertenece el Vicegobernador. El asiento presidencial del Senado se pintará con el color de este partido.

Presidencia Cámara de Diputados

Esta banca se asigna y colorea automáticamente según la agrupación política con la mayoría de bancas totales en la cámara.

); };