Merge pull request #25 from ciphera-net/staging

fix: reorganize data loading and auto-refresh logic in SiteDashboardPage for improved clarity and maintainability
This commit is contained in:
Usman
2026-02-12 09:02:48 +01:00
committed by GitHub

View File

@@ -127,15 +127,6 @@ export default function SiteDashboardPage() {
localStorage.setItem('pulse_dashboard_settings', JSON.stringify(settings)) localStorage.setItem('pulse_dashboard_settings', JSON.stringify(settings))
}, [todayInterval, multiDayInterval, isSettingsLoaded]) // dateRange is handled in saveSettings/onChange }, [todayInterval, multiDayInterval, isSettingsLoaded]) // dateRange is handled in saveSettings/onChange
useEffect(() => {
if (isSettingsLoaded) loadData()
const interval = setInterval(() => {
loadData(true)
loadRealtime()
}, 30000)
return () => clearInterval(interval)
}, [siteId, dateRange, todayInterval, multiDayInterval, isSettingsLoaded, loadData, loadRealtime])
// * Tick every 1s so "Live · Xs ago" counts in real time // * Tick every 1s so "Live · Xs ago" counts in real time
useEffect(() => { useEffect(() => {
const interval = setInterval(() => setTick((t) => t + 1), 1000) const interval = setInterval(() => setTick((t) => t + 1), 1000)
@@ -215,6 +206,15 @@ export default function SiteDashboardPage() {
} }
}, [siteId]) }, [siteId])
useEffect(() => {
if (isSettingsLoaded) loadData()
const interval = setInterval(() => {
loadData(true)
loadRealtime()
}, 30000)
return () => clearInterval(interval)
}, [siteId, dateRange, todayInterval, multiDayInterval, isSettingsLoaded, loadData, loadRealtime])
if (loading) { if (loading) {
return <LoadingOverlay logoSrc="/pulse_icon_no_margins.png" title="Pulse" /> return <LoadingOverlay logoSrc="/pulse_icon_no_margins.png" title="Pulse" />
} }