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 ? (
) : (
)}
{logged && (
{sintonizado &&
}
{!sintonizado && (
Dashboard
Pulse el botón para sintonizar
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}
}
);
};
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.