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); const [wifiConfig, setWifiConfig] = useState({ enabled: false, ssid: '', password: '' }); const [wifiMsg, setWifiMsg] = useState(''); const [mqttConfig, setMqttConfig] = useState({ enabled: false, host: '', port: 1883, username: '', password: '', topic: '', }); const [mqttMsg, setMqttMsg] = useState(''); // Carregar as configurações Wi-Fi e MQTT useEffect(() => { const load = async () => { try { const wifi = await get('/api/v1/config/wifi'); setWifiConfig(wifi); // Atualiza as configurações Wi-Fi } catch (error) { console.error('Erro ao carregar configurações Wi-Fi:', error); } try { const mqtt = await get('/api/v1/config/mqtt'); setMqttConfig(mqtt); // Atualiza as configurações MQTT } catch (error) { console.error('Erro ao carregar configurações MQTT:', error); } setLoading(false); // Finaliza o carregamento }; load(); }, []); // Salvar configuração Wi-Fi const saveWifi = async () => { try { await post('/api/v1/config/wifi', wifiConfig); setWifiMsg('Alterações guardadas com sucesso!'); } catch (error) { setWifiMsg('Erro ao guardar alterações.'); } }; // Salvar configuração MQTT const saveMqtt = async () => { try { await post('/api/v1/config/mqtt', mqttConfig); setMqttMsg('Alterações guardadas com sucesso!'); } catch (error) { setMqttMsg('Erro ao guardar alterações.'); } }; return ( {loading ? (

A carregar...

) : (

Configuração Wi-Fi

{wifiMsg && {wifiMsg}}
{ e.preventDefault(); saveWifi(); }}>
setWifiConfig({ ...wifiConfig, ssid: e.target.value })} />
setWifiConfig({ ...wifiConfig, password: e.target.value })} />

Configuração MQTT

{mqttMsg && {mqttMsg}}
{ e.preventDefault(); saveMqtt(); }}>
setMqttConfig({ ...mqttConfig, host: e.target.value })} />
setMqttConfig({ ...mqttConfig, port: parseInt(e.target.value || 0) })} />
setMqttConfig({ ...mqttConfig, username: e.target.value })} />
setMqttConfig({ ...mqttConfig, password: e.target.value })} />
setMqttConfig({ ...mqttConfig, topic: e.target.value })} />
)}
); }; export default Connectivity;