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 const [currentLimit, setCurrentLimit] = useState(32); const [powerLimit, setPowerLimit] = useState(0); const [energyLimit, setEnergyLimit] = useState(0); const [chargingTimeLimit, setChargingTimeLimit] = useState(0); const [temperatureLimit, setTemperatureLimit] = useState(60); const [msg, setMsg] = useState(''); const [error, setError] = useState(''); // Função para preencher os campos com os dados do servidor const fetchSettings = async () => { const response = await fetch('/api/v1/config/settings'); if (response.ok) { const data = await response.json(); setCurrentLimit(data.currentLimit); setPowerLimit(data.powerLimit); setEnergyLimit(data.energyLimit); setChargingTimeLimit(data.chargingTimeLimit); setTemperatureLimit(data.temperatureLimit); } else { setError('Erro ao obter as configurações'); } }; // Carregar as configurações ao montar o componente useEffect(() => { fetchSettings(); }, []); const handleCurrentLimitChange = (e) => setCurrentLimit(parseInt(e.target.value, 10)); const handlePowerLimitChange = (e) => setPowerLimit(parseInt(e.target.value, 10)); const handleEnergyLimitChange = (e) => setEnergyLimit(parseInt(e.target.value, 10)); const handleChargingTimeLimitChange = (e) => setChargingTimeLimit(parseInt(e.target.value, 10)); const handleTemperatureLimitChange = (e) => setTemperatureLimit(parseInt(e.target.value, 10)); const handleSubmit = async (e) => { e.preventDefault(); const settingsData = { currentLimit, powerLimit, energyLimit, chargingTimeLimit, temperatureLimit, }; try { const response = await fetch('/api/v1/config/settings', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(settingsData), }); if (response.ok) { setMsg('Alterações guardadas com sucesso!'); } else { setError('Erro ao guardar alterações.'); } } catch { setError('Erro ao guardar alterações.'); } }; return ( {msg && {msg}} {error && {error}}
); }; export default Settings;