From d3728f4108b9aa6e5866d7701eced8273ad96240 Mon Sep 17 00:00:00 2001 From: Pouzor Date: Fri, 10 Jul 2026 15:45:46 +0200 Subject: [PATCH] fix: widen Settings modal to two columns; env cleanup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - SettingsModal: widen to sm:max-w-3xl with max-h-[90vh] scroll and a two-column grid so it no longer overflows the viewport. Left column = status/service checks + canvas prefs; right column groups all auto-sync config (Zigbee, Z-Wave, Proxmox). - .env.example: drop ZIGBEE_/ZWAVE_ SYNC_ENABLED + SYNC_INTERVAL — the auto-sync activation is configured in the Settings modal (persisted to scan_config.json), same as Proxmox; connection config stays env-only. ha-relevant: no --- .env.example | 4 - .../src/components/modals/SettingsModal.tsx | 170 +++++++++--------- 2 files changed, 88 insertions(+), 86 deletions(-) diff --git a/.env.example b/.env.example index 322a8b5..0ddb255 100644 --- a/.env.example +++ b/.env.example @@ -71,8 +71,6 @@ MCP_SERVICE_KEY=svc_changeme # ZIGBEE_BASE_TOPIC=zigbee2mqtt # ZIGBEE_MQTT_TLS=false # true for TLS brokers (typically port 8883) # ZIGBEE_MQTT_TLS_INSECURE=false # skip cert verify (self-signed only; requires TLS) -# ZIGBEE_SYNC_ENABLED=false # turn scheduled auto-sync on -# ZIGBEE_SYNC_INTERVAL=3600 # seconds between syncs (min 300) # Z-Wave JS UI (zwavejs2mqtt) auto-sync — same MQTT secret/env rules as Zigbee. # ZWAVE_MQTT_HOST=192.168.1.20 @@ -83,5 +81,3 @@ MCP_SERVICE_KEY=svc_changeme # ZWAVE_GATEWAY_NAME=zwavejs2mqtt # ZWAVE_MQTT_TLS=false # true for TLS brokers (typically port 8883) # ZWAVE_MQTT_TLS_INSECURE=false # skip cert verify (self-signed only; requires TLS) -# ZWAVE_SYNC_ENABLED=false # turn scheduled auto-sync on -# ZWAVE_SYNC_INTERVAL=3600 # seconds between syncs (min 300) diff --git a/frontend/src/components/modals/SettingsModal.tsx b/frontend/src/components/modals/SettingsModal.tsx index 448f3b9..fa16651 100644 --- a/frontend/src/components/modals/SettingsModal.tsx +++ b/frontend/src/components/modals/SettingsModal.tsx @@ -249,12 +249,14 @@ export function SettingsModal({ open, onClose }: SettingsModalProps) { return ( !v && onClose()}> - + Settings -
+
+ {/* Left column */} +
{/* Status checker */} {!STANDALONE && (
@@ -306,6 +308,90 @@ export function SettingsModal({ open, onClose }: SettingsModalProps) {
)} + {/* Canvas */} +
+ Canvas + + + + + +
+ +
+ updateAlignment({ threshold: Number(e.target.value) })} + className="flex-1 cursor-pointer accent-[#00d4ff]" + aria-label="Alignment snap threshold" + /> + {alignment.threshold}px +
+

+ Distance at which dragged nodes snap to neighbours. Hold Alt while dragging to disable. +

+
+
+
+ + {/* Right column */} +
+ {/* Zigbee auto-sync */} + {!STANDALONE && zbConfig && ( + + )} + + {/* Z-Wave auto-sync */} + {!STANDALONE && zwConfig && ( + + )} + {/* Proxmox auto-sync */} {!STANDALONE && pmConfig && (
@@ -368,86 +454,6 @@ export function SettingsModal({ open, onClose }: SettingsModalProps) { )}
)} - - {/* Zigbee auto-sync */} - {!STANDALONE && zbConfig && ( - - )} - - {/* Z-Wave auto-sync */} - {!STANDALONE && zwConfig && ( - - )} - - {/* Canvas */} -
- Canvas - - - - - -
- -
- updateAlignment({ threshold: Number(e.target.value) })} - className="flex-1 cursor-pointer accent-[#00d4ff]" - aria-label="Alignment snap threshold" - /> - {alignment.threshold}px -
-

- Distance at which dragged nodes snap to neighbours. Hold Alt while dragging to disable. -

-