FlotillasGPS - Sistema completo de monitoreo de flotillas GPS

Sistema completo para monitoreo y gestion de flotas de vehiculos con:
- Backend FastAPI con PostgreSQL/TimescaleDB
- Frontend React con TypeScript y TailwindCSS
- App movil React Native con Expo
- Soporte para dispositivos GPS, Meshtastic y celulares
- Video streaming en vivo con MediaMTX
- Geocercas, alertas, viajes y reportes
- Autenticacion JWT y WebSockets en tiempo real

Documentacion completa y guias de usuario incluidas.
This commit is contained in:
FlotillasGPS Developer
2026-01-21 08:18:00 +00:00
commit 51d78bacf4
248 changed files with 50171 additions and 0 deletions

View File

@@ -0,0 +1,82 @@
/**
* Hook personalizado para autenticación
* Proporciona acceso al estado de auth y acciones comunes
*/
import { useCallback, useEffect } from 'react';
import { useAuthStore } from '../store/authStore';
export const useAuth = () => {
const {
conductor,
token,
dispositivo,
isAuthenticated,
isLoading,
initialize,
requestCode,
verifyCode,
logout,
refreshToken,
updateConductor,
} = useAuthStore();
// Inicializar al montar
useEffect(() => {
initialize();
}, [initialize]);
// Login con teléfono
const login = useCallback(
async (telefono: string) => {
const result = await requestCode(telefono);
return result;
},
[requestCode]
);
// Verificar código
const verify = useCallback(
async (telefono: string, codigo: string) => {
const result = await verifyCode(telefono, codigo);
return result;
},
[verifyCode]
);
// Cerrar sesión
const signOut = useCallback(async () => {
await logout();
}, [logout]);
// Refrescar token
const refresh = useCallback(async () => {
return await refreshToken();
}, [refreshToken]);
// Actualizar perfil
const updateProfile = useCallback(
(updates: Parameters<typeof updateConductor>[0]) => {
updateConductor(updates);
},
[updateConductor]
);
return {
// Estado
conductor,
token,
dispositivo,
isAuthenticated,
isLoading,
// Acciones
login,
verify,
signOut,
refresh,
updateProfile,
};
};
export default useAuth;