Use Alert component for user messages
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
import React, { useState, useEffect } from 'react';
|
import React, { useState, useEffect } from 'react';
|
||||||
import PageLayout from '../components/PageLayout';
|
import PageLayout from '../components/PageLayout';
|
||||||
|
import Alert from '../components/Alert';
|
||||||
|
|
||||||
const Dashboard = () => {
|
const Dashboard = () => {
|
||||||
// Estados para armazenar os dados do dashboard
|
// Estados para armazenar os dados do dashboard
|
||||||
@@ -12,6 +13,7 @@ const Dashboard = () => {
|
|||||||
chargingTime: 0,
|
chargingTime: 0,
|
||||||
alerts: [],
|
alerts: [],
|
||||||
});
|
});
|
||||||
|
const [error, setError] = useState('');
|
||||||
|
|
||||||
// Função para obter os dados do dashboard
|
// Função para obter os dados do dashboard
|
||||||
const fetchDashboardData = async () => {
|
const fetchDashboardData = async () => {
|
||||||
@@ -21,11 +23,11 @@ const Dashboard = () => {
|
|||||||
const data = await response.json();
|
const data = await response.json();
|
||||||
setDashboardData(data); // Atualiza o estado com os dados recebidos
|
setDashboardData(data); // Atualiza o estado com os dados recebidos
|
||||||
} else {
|
} else {
|
||||||
alert('Erro ao obter os dados do dashboard');
|
setError('Erro ao obter os dados do dashboard');
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Erro ao buscar dados do dashboard:', error);
|
console.error('Erro ao buscar dados do dashboard:', error);
|
||||||
alert('Erro de conexão');
|
setError('Erro de conexão');
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -36,6 +38,7 @@ const Dashboard = () => {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<PageLayout title="Visão Geral">
|
<PageLayout title="Visão Geral">
|
||||||
|
{error && <Alert type="error">{error}</Alert>}
|
||||||
|
|
||||||
{/* Cards com informações resumidas */}
|
{/* Cards com informações resumidas */}
|
||||||
<div className="flex flex-wrap gap-4 mb-6">
|
<div className="flex flex-wrap gap-4 mb-6">
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import { useState } from 'react';
|
import { useState } from 'react';
|
||||||
import PageLayout from '../components/PageLayout';
|
import PageLayout from '../components/PageLayout';
|
||||||
|
import Alert from '../components/Alert';
|
||||||
|
|
||||||
export default function Login({ setAuthData }) {
|
export default function Login({ setAuthData }) {
|
||||||
const [user, setUser] = useState('');
|
const [user, setUser] = useState('');
|
||||||
@@ -18,7 +19,7 @@ export default function Login({ setAuthData }) {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<PageLayout title="Início de Sessão">
|
<PageLayout title="Início de Sessão">
|
||||||
{error && <div className="p-2 mb-4 bg-red-500 text-white rounded">{error}</div>}
|
{error && <Alert type="error">{error}</Alert>}
|
||||||
|
|
||||||
<form className="flex flex-col gap-4" onSubmit={submit}>
|
<form className="flex flex-col gap-4" onSubmit={submit}>
|
||||||
<div className="mb-4">
|
<div className="mb-4">
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import { useEffect, useState } from 'react';
|
import { useEffect, useState } from 'react';
|
||||||
import { fetchLogs } from '../api';
|
import { fetchLogs } from '../api';
|
||||||
import PageLayout from '../components/PageLayout';
|
import PageLayout from '../components/PageLayout';
|
||||||
|
import Alert from '../components/Alert';
|
||||||
|
|
||||||
export default function Logs() {
|
export default function Logs() {
|
||||||
const [logs, setLogs] = useState('');
|
const [logs, setLogs] = useState('');
|
||||||
@@ -26,7 +27,7 @@ export default function Logs() {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<PageLayout title="Registos do Sistema">
|
<PageLayout title="Registos do Sistema">
|
||||||
{error && <div className="p-2 mb-2 bg-red-600 text-white rounded">{error}</div>}
|
{error && <Alert type="error">{error}</Alert>}
|
||||||
|
|
||||||
{loading ? (
|
{loading ? (
|
||||||
<p>A carregar...</p>
|
<p>A carregar...</p>
|
||||||
|
|||||||
@@ -50,7 +50,9 @@ const OCPP = () => {
|
|||||||
<p>A carregar...</p>
|
<p>A carregar...</p>
|
||||||
) : (
|
) : (
|
||||||
<>
|
<>
|
||||||
{msg && <div className="p-2 mb-2 bg-gray-200 rounded">{msg}</div>}
|
{msg && (
|
||||||
|
<Alert type={msg.startsWith('Erro') ? 'error' : 'success'}>{msg}</Alert>
|
||||||
|
)}
|
||||||
|
|
||||||
|
|
||||||
<form className="flex flex-col gap-4" onSubmit={e => { e.preventDefault(); save(); }}>
|
<form className="flex flex-col gap-4" onSubmit={e => { e.preventDefault(); save(); }}>
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import React, { useState, useEffect } from 'react';
|
import React, { useState, useEffect } from 'react';
|
||||||
import PageLayout from '../components/PageLayout';
|
import PageLayout from '../components/PageLayout';
|
||||||
|
import Alert from '../components/Alert';
|
||||||
import { post, get } from '../api'; // Supondo que os métodos post e get estejam definidos na API.
|
import { post, get } from '../api'; // Supondo que os métodos post e get estejam definidos na API.
|
||||||
|
|
||||||
const Security = () => {
|
const Security = () => {
|
||||||
@@ -17,6 +18,8 @@ const Security = () => {
|
|||||||
|
|
||||||
// Estado para o novo nome de usuário
|
// Estado para o novo nome de usuário
|
||||||
const [newUser, setNewUser] = useState('');
|
const [newUser, setNewUser] = useState('');
|
||||||
|
const [msg, setMsg] = useState('');
|
||||||
|
const [error, setError] = useState('');
|
||||||
|
|
||||||
// Função para alterar os métodos de autenticação
|
// Função para alterar os métodos de autenticação
|
||||||
const handleAuthMethodChange = (method) => {
|
const handleAuthMethodChange = (method) => {
|
||||||
@@ -33,7 +36,7 @@ const Security = () => {
|
|||||||
setAuthMethods(data); // Preenche o estado com os dados recebidos
|
setAuthMethods(data); // Preenche o estado com os dados recebidos
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Erro ao buscar configurações de autenticação:', error);
|
console.error('Erro ao buscar configurações de autenticação:', error);
|
||||||
alert('Erro ao buscar configurações de autenticação.');
|
setError('Erro ao buscar configurações de autenticação.');
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -43,10 +46,10 @@ const Security = () => {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
await post('/api/v1/config/auth-methods', authMethods); // Envia os dados de authMethods para o servidor
|
await post('/api/v1/config/auth-methods', authMethods); // Envia os dados de authMethods para o servidor
|
||||||
alert('Configurações de Autorização salvas com sucesso!');
|
setMsg('Configurações de Autorização salvas com sucesso!');
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Erro ao salvar configurações:', error);
|
console.error('Erro ao salvar configurações:', error);
|
||||||
alert('Erro ao salvar configurações.');
|
setError('Erro ao salvar configurações.');
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -70,6 +73,8 @@ const Security = () => {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<PageLayout title="Segurança">
|
<PageLayout title="Segurança">
|
||||||
|
{msg && <Alert type="success">{msg}</Alert>}
|
||||||
|
{error && <Alert type="error">{error}</Alert>}
|
||||||
{/* Métodos de Autorização */}
|
{/* Métodos de Autorização */}
|
||||||
<div className="mb-5">
|
<div className="mb-5">
|
||||||
<h2 className="text-xl font-semibold mb-2">Métodos de Autorização</h2>
|
<h2 className="text-xl font-semibold mb-2">Métodos de Autorização</h2>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ const Settings = () => {
|
|||||||
setChargingTimeLimit(data.chargingTimeLimit);
|
setChargingTimeLimit(data.chargingTimeLimit);
|
||||||
setTemperatureLimit(data.temperatureLimit);
|
setTemperatureLimit(data.temperatureLimit);
|
||||||
} else {
|
} else {
|
||||||
alert('Erro ao obter as configurações');
|
setError('Erro ao obter as configurações');
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user