
// Escuchar cambios en localStorage desde otras pestañas o ventanas
window.addEventListener('storage', (event) => {
  if (event.key === 'solicitudBeca') {
    // Los datos cambiaron en otra pestaña, actualizar el dashboard
    const event_actualizada = new CustomEvent('solicitudBecaActualizada', { 
      detail: event.newValue ? JSON.parse(event.newValue) : {} 
    });
    window.dispatchEvent(event_actualizada);
  }
});

/**
 * Función para actualizar datos en tiempo real desde el formulario
 * Llamada desde cada cambio en los inputs
 */
function sincronizarDatos() {
  // Esta función es llamada desde formulario.js cuando hay cambios
  // Dispara un evento que escuchan todas las pestañas abiertas
  const datosActuales = localStorage.getItem('solicitudBeca');
  window.dispatchEvent(new CustomEvent('solicitudBecaActualizada', {
    detail: datosActuales ? JSON.parse(datosActuales) : {}
  }));
}

// Permitir polling manual para verificar cambios frecuentemente
let ultimoChecksum = '';

function crearChecksum(obj) {
  return JSON.stringify(obj);
}

setInterval(() => {
  const datos = localStorage.getItem('solicitudBeca');
  const checksum = crearChecksum(datos);
  
  if (checksum !== ultimoChecksum) {
    ultimoChecksum = checksum;
    const event_actualizada = new CustomEvent('solicitudBecaActualizada', {
      detail: datos ? JSON.parse(datos) : {}
    });
    window.dispatchEvent(event_actualizada);
  }
}, 500); // Verificar cada 500ms
