);
}
```
## 🔄 Sincronización entre módulos
Cuando un usuario:
1. **Inicia sesión en landing-page** → Los datos se guardan en localStorage
2. **Navega a broadcast-studio** → El hook `useAuth()` lee el mismo localStorage
3. **Cambia el idioma en studio** → El cambio se refleja en todos los módulos
4. **Cierra sesión en admin-panel** → Todos los módulos detectan el logout
## ⚙️ Configuración de Variables de Entorno
Cada módulo frontend necesita configurar la URL del backend:
```bash
# packages/landing-page/.env
VITE_API_URL=http://localhost:4000/api/v1
# packages/broadcast-studio/.env
VITE_API_URL=http://localhost:4000/api/v1
# packages/admin-panel/.env
VITE_API_URL=http://localhost:4000/api/v1
```
## 📝 Añadir nuevas traducciones
Edita `shared/utils/i18n.ts`:
```typescript
const translations: Record = {
es: {
myNewSection: {
title: 'Mi nuevo título',
description: 'Mi nueva descripción'
}
},
en: {
myNewSection: {
title: 'My new title',
description: 'My new description'
}
},
// ... pt, fr
};
```
Luego úsalo:
```typescript
const { t } = useLanguage();
console.log(t('myNewSection.title'));
```
## 🎯 Beneficios de los Módulos Compartidos
✅ **Consistencia**: Mismo comportamiento de auth e i18n en todos los módulos
✅ **Mantenibilidad**: Cambiar una vez, actualiza en todos lados
✅ **Reutilización**: No duplicar código entre módulos
✅ **Type Safety**: TypeScript types compartidos evitan inconsistencias
✅ **Sincronización**: Cambios en un módulo se reflejan en otros automáticamente
## 🔧 Próximos Pasos
1. Implementar backend API endpoints (`/auth/login`, `/auth/register`)
2. Agregar refresh token automático cuando el access token expire
3. Implementar protección de rutas en cada módulo
4. Añadir más traducciones según se necesite
5. Crear más componentes compartidos (Modals, Alerts, Forms, etc.)