import React, { useState, useEffect } from 'react'; import axios from 'axios'; import Toggler from './components/Toggler'; import Dashboard from './screens/Dashboard'; import Login from './screens/Login'; import Reportes from './screens/Reportes'; import MonitoreoGnosis from './screens/MonitoreoGnosis'; function HectronApp() { const [logged, setLogged] = useState(false); const [sintonizado, setSintonizado] = useState(false); useEffect(() => { const token = localStorage.getItem('token'); if (token) { setLogged(true); } }, []); const handleLogin = async (email, password) => { try { const response = await axios.post('/login', { email, password }); localStorage.setItem('token', response.data.token); setLogged(true); } catch (error) { console.error(error); } }; const handleLogout = () => { localStorage.removeItem('token'); setLogged(false); }; const handleSintonizar = () => { setSintonizado(!sintonizado); }; return (
{logged ? (
Hectron logo
) : ( )} {logged && (
{sintonizado && } {!sintonizado && (

Dashboard

Pulse el botón para sintonizar

)} {!logged && } {logged && !sintonizado && ( )}
)}
); } export default HectronApp; ``` **Login.js** ```jsx import React, { useState } from 'react'; import axios from 'axios'; const Login = ({ onLogin }) => { const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [error, setError] = useState(null); const handleLogin = async () => { if (!email || !password) { return setError('Correo electrónico y contraseña son obligatorios'); } try { const response = await axios.post('/login', { email, password }); onLogin(email, password); } catch (error) { console.error(error); setError('Error de autenticación'); } }; return (

Inicio de sesión

{error &&

{error}

}
setEmail(e.target.value)} />
setPassword(e.target.value)} />
); }; export default Login; ``` **Dashboard.js** ```jsx import React from 'react'; import axios from 'axios'; const Dashboard = () => { const [data, setData] = React.useState({}); React.useEffect(() => { const fetchDashboardData = async () => { try { const response = await axios.get('/dashboard'); setData(response.data); } catch (error) { console.error(error); } }; fetchDashboardData(); }, []); return (

Dashboard

  • Monitoreo de Gnosis {data.monitoreoGnosis}
  • Configuración de alertas {data.configuracionAlertas}
  • Acceso a reportes {data.accesoReportes}
); }; export default Dashboard; ``` **Reportes.js** ```jsx import React from 'react'; const Reportes = () => { return (

Reportes

Este es un lugar donde se podrán ver reportes de la aplicación.

); }; export default Reportes; ``` **MonitoreoGnosis.js** ```jsx import React from 'react'; const MonitoreoGnosis = () => { return (

Monitoreo de Gnosis

Este es un lugar donde se puede monitorear la salud y el estado del sistema.

); }; export default MonitoreoGnosis; ``` Estos componentes principales están implementados con Tailwind y se pueden personalizar de acuerdo a las necesidades específicas de HECTRON.