Add Controls tab with lights, locks, alarm, thermostats overlay

The five-tab nav now includes a Controls tab between Home and Media.
Opens a full-screen overlay with the alarm panel, each configured
thermostat, lights, and locks tiled in a responsive 2-column grid.
This commit is contained in:
root
2026-04-14 14:06:13 -05:00
parent 1dd32c6afe
commit 7886e72f38
5 changed files with 98 additions and 9 deletions

View File

@@ -3,6 +3,7 @@ import { Dashboard } from '@/components/layout';
import { ThermostatOverlay } from '@/components/climate';
import { LightsOverlay } from '@/components/lights';
import { LocksOverlay } from '@/components/locks';
import { ControlsOverlay } from '@/components/controls';
import { CalendarWidget } from '@/components/calendar';
import { TodoWidget } from '@/components/todo';
import { SettingsPanel, ConnectionModal } from '@/components/settings';
@@ -124,6 +125,7 @@ export default function App() {
const locksOverlayOpen = useUIStore((state) => state.locksOverlayOpen);
const thermostatsOverlayOpen = useUIStore((state) => state.thermostatsOverlayOpen);
const mediaOverlayOpen = useUIStore((state) => state.mediaOverlayOpen);
const controlsOverlayOpen = useUIStore((state) => state.controlsOverlayOpen);
const { isOpen: cameraOverlayOpen } = useCameraOverlay();
const isIdle = useIdle(env.photoFrameIdleTimeout);
@@ -273,6 +275,7 @@ export default function App() {
{locksOverlayOpen && <LocksOverlay />}
{thermostatsOverlayOpen && <ThermostatOverlay />}
{mediaOverlayOpen && <JellyfinOverlay />}
{controlsOverlayOpen && <ControlsOverlay />}
{cameraOverlayOpen && <CameraOverlay />}
{settingsOpen && <SettingsPanel />}
{isIdle && !alertCamera && <PhotoFrame intervalMs={env.photoFrameInterval} />}