Fix: toggle reset ke OFF jika data tidak fresh (>30 detik)

This commit is contained in:
flems 2026-06-02 08:30:02 +07:00
parent 0d16601ec5
commit ed2afaf941
1 changed files with 30 additions and 6 deletions

View File

@ -131,27 +131,51 @@ export default function ControlPanel() {
const isDataFresh = dataAge < 30000 // Data dianggap segar jika < 30 detik
setCurrentTemp(result.data.suhu)
setIsPowerOn(result.data.heater) // Heater + Fan In status
// Jika data fresh, update dari backend. Jika tidak, set ke false (default OFF)
if (isDataFresh) {
const heaterStatus = result.data.heater === true || result.data.heater === 'true'
setIsPowerOn(heaterStatus)
// Exhaust
if (result.data.exhaust !== undefined) {
const exhaustStatus = result.data.exhaust === true || result.data.exhaust === 'true'
setIsExhaustOn(exhaustStatus)
}
} else {
// Data sudah lama, set toggle ke OFF untuk keamanan
setIsPowerOn(false)
setIsExhaustOn(false)
}
console.log('Data dari backend:', {
heater: result.data.heater,
fan: result.data.fan,
dataAge: `${Math.floor(dataAge / 1000)}s`,
isDataFresh: isDataFresh,
toggleStatus: isDataFresh ? result.data.heater : false
})
if (result.data.setpoint) {
setTargetTemp(result.data.setpoint)
}
// Jika backend mengembalikan status exhaust
if (result.data.exhaust !== undefined) {
setIsExhaustOn(result.data.exhaust)
}
// Set hasData hanya jika data segar
setHasData(isDataFresh)
setLastDataTime(new Date(result.data.createdAt))
setError(null)
} else {
// Tidak ada data
// Tidak ada data - reset semua ke default
setHasData(false)
setLastDataTime(null)
setIsPowerOn(false)
setIsExhaustOn(false)
}
} catch (err) {
setError('Gagal memuat data sensor')
setHasData(false)
setIsPowerOn(false)
setIsExhaustOn(false)
console.error('Error fetching latest data:', err)
} finally {
setLoading(false)