From 1a8b5b21b15ad3c6a4e2672730e8a42481e821f8 Mon Sep 17 00:00:00 2001 From: PlxEV Date: Sat, 7 Jun 2025 16:57:26 +0100 Subject: [PATCH] Uniformize success/error alerts across forms --- src/components/Alert.jsx | 13 +++++++++++++ src/pages/Connectivity.jsx | 17 +++++++++-------- src/pages/ElectricalNetwork.jsx | 9 +++++---- src/pages/LoadBalancing.jsx | 7 ++++--- src/pages/Mqtt.jsx | 9 +++++---- src/pages/OCPP.jsx | 7 ++++--- src/pages/Settings.jsx | 11 ++++++----- src/pages/Wifi.jsx | 7 ++++--- 8 files changed, 50 insertions(+), 30 deletions(-) create mode 100644 src/components/Alert.jsx diff --git a/src/components/Alert.jsx b/src/components/Alert.jsx new file mode 100644 index 0000000..153b83c --- /dev/null +++ b/src/components/Alert.jsx @@ -0,0 +1,13 @@ +import React from 'react'; + +export default function Alert({ type = 'info', children }) { + const base = 'p-2 mb-2 rounded'; + const types = { + success: 'bg-green-600 text-white', + error: 'bg-red-600 text-white', + info: 'bg-gray-200', + }; + return ( +
{children}
+ ); +} diff --git a/src/pages/Connectivity.jsx b/src/pages/Connectivity.jsx index 65d912d..3d8a21a 100755 --- a/src/pages/Connectivity.jsx +++ b/src/pages/Connectivity.jsx @@ -1,6 +1,7 @@ import React, { useState, useEffect } from 'react'; import { get, post } from '../api'; import PageLayout from '../components/PageLayout'; +import Alert from '../components/Alert'; const Connectivity = () => { const [loading, setLoading] = useState(true); @@ -45,20 +46,20 @@ const Connectivity = () => { // Salvar configuração Wi-Fi const saveWifi = async () => { try { - await post('/api/v1/config/wifi', wifiConfig); // Envia as configurações de Wi-Fi para o servidor - setWifiMsg('Configuração Wi-Fi gravada!'); + await post('/api/v1/config/wifi', wifiConfig); + setWifiMsg('Alterações guardadas com sucesso!'); } catch (error) { - setWifiMsg('Erro ao gravar Wi-Fi.'); + setWifiMsg('Erro ao guardar alterações.'); } }; // Salvar configuração MQTT const saveMqtt = async () => { try { - await post('/api/v1/config/mqtt', mqttConfig); // Envia as configurações de MQTT para o servidor - setMqttMsg('Configuração MQTT gravada!'); + await post('/api/v1/config/mqtt', mqttConfig); + setMqttMsg('Alterações guardadas com sucesso!'); } catch (error) { - setMqttMsg('Erro ao gravar MQTT.'); + setMqttMsg('Erro ao guardar alterações.'); } }; @@ -70,7 +71,7 @@ const Connectivity = () => {

Configuração Wi-Fi

- {wifiMsg &&
{wifiMsg}
} + {wifiMsg && {wifiMsg}}
{ e.preventDefault(); saveWifi(); }}> @@ -113,7 +114,7 @@ const Connectivity = () => {

Configuração MQTT

- {mqttMsg &&
{mqttMsg}
} + {mqttMsg && {mqttMsg}}
{ e.preventDefault(); saveMqtt(); }}>
)} - {msg &&
{msg}
} + {msg && {msg}} { e.preventDefault(); save(); }}>
diff --git a/src/pages/Settings.jsx b/src/pages/Settings.jsx index e043751..e03ee93 100755 --- a/src/pages/Settings.jsx +++ b/src/pages/Settings.jsx @@ -1,5 +1,6 @@ import React, { useState, useEffect } from 'react'; import PageLayout from '../components/PageLayout'; +import Alert from '../components/Alert'; const Settings = () => { // Estados para armazenar os valores dos sliders e caixas de entrada @@ -57,19 +58,19 @@ const Settings = () => { }); if (response.ok) { - setMsg('Configurações de energia atualizadas com sucesso!'); + setMsg('Alterações guardadas com sucesso!'); } else { - setError('Erro ao atualizar configurações'); + setError('Erro ao guardar alterações.'); } } catch { - setError('Erro ao atualizar configurações'); + setError('Erro ao guardar alterações.'); } }; return ( - {msg &&
{msg}
} - {error &&
{error}
} + {msg && {msg}} + {error && {error}}
diff --git a/src/pages/Wifi.jsx b/src/pages/Wifi.jsx index 287e591..5d3ad9b 100755 --- a/src/pages/Wifi.jsx +++ b/src/pages/Wifi.jsx @@ -1,6 +1,7 @@ import { useEffect, useState } from 'react'; import { get, post } from '../api'; import PageLayout from '../components/PageLayout'; +import Alert from '../components/Alert'; export default function Wifi() { const [config, setConfig] = useState({ ssid: '', password: '' }); @@ -36,15 +37,15 @@ export default function Wifi() { const save = async () => { try { await post('/api/v1/config/wifi', config); - setMsg('Configuração gravada com sucesso!'); + setMsg('Alterações guardadas com sucesso!'); } catch { - setMsg('Erro ao gravar.'); + setMsg('Erro ao guardar alterações.'); } }; return ( - {msg &&
{msg}
} + {msg && {msg}} {loading ? (

A carregar...