From ca1cd14ed1e6c6522c04654f140245c53e5dbd13 Mon Sep 17 00:00:00 2001 From: Kyle Pope Date: Wed, 25 Feb 2026 17:14:24 +0800 Subject: [PATCH] Rebalance settings page columns and inline lock-after input Left column: Profile, Appearance, Calendar, Dashboard, Weather (prefs & display) Right column: Security, Authentication, Integrations (security & services) Also inlines the "Lock after [input] minutes" onto a single row. Co-Authored-By: Claude Opus 4.6 --- .../src/components/settings/SettingsPage.tsx | 268 +++++++++--------- 1 file changed, 133 insertions(+), 135 deletions(-) diff --git a/frontend/src/components/settings/SettingsPage.tsx b/frontend/src/components/settings/SettingsPage.tsx index 495d214..ca842d3 100644 --- a/frontend/src/components/settings/SettingsPage.tsx +++ b/frontend/src/components/settings/SettingsPage.tsx @@ -220,7 +220,7 @@ export default function SettingsPage() {
- {/* ── Left column: Profile, Appearance, Weather ── */} + {/* ── Left column: Profile, Appearance, Calendar, Dashboard, Weather ── */}
{/* Profile */} @@ -300,140 +300,6 @@ export default function SettingsPage() { - {/* Weather */} - - -
-
-
-
- Weather - Configure the weather widget on your dashboard -
-
-
- -
- - {hasLocation ? ( -
- - - {settings?.weather_city || `${settings?.weather_lat}, ${settings?.weather_lon}`} - - -
- ) : ( -
-
- - handleLocationInputChange(e.target.value)} - onFocus={() => { if (locationResults.length > 0) setShowDropdown(true); }} - className="pl-9 pr-9" - /> - {isSearching && ( - - )} -
- {showDropdown && ( -
- {locationResults.map((loc, i) => ( - - ))} -
- )} -
- )} -

- Search and select your city for accurate weather data on the dashboard. -

-
-
-
- -
- - {/* ── Right column: Security, Authentication, Calendar, Dashboard, Integrations ── */} -
- - {/* Security (auto-lock) */} - - -
-
-
-
- Security - Configure screen lock behavior -
-
-
- -
-
- -

- Automatically lock the screen after idle time -

-
- -
-
- -
- setAutoLockMinutes(e.target.value === '' ? '' : parseInt(e.target.value) || '')} - onBlur={handleAutoLockMinutesSave} - onKeyDown={(e) => { if (e.key === 'Enter') handleAutoLockMinutesSave(); }} - className="w-24" - disabled={!autoLockEnabled || isUpdating} - /> - minutes -
-
-
-
- - {/* Authentication (TOTP + password change) */} - - {/* Calendar */} @@ -529,6 +395,138 @@ export default function SettingsPage() { + {/* Weather */} + + +
+
+
+
+ Weather + Configure the weather widget on your dashboard +
+
+
+ +
+ + {hasLocation ? ( +
+ + + {settings?.weather_city || `${settings?.weather_lat}, ${settings?.weather_lon}`} + + +
+ ) : ( +
+
+ + handleLocationInputChange(e.target.value)} + onFocus={() => { if (locationResults.length > 0) setShowDropdown(true); }} + className="pl-9 pr-9" + /> + {isSearching && ( + + )} +
+ {showDropdown && ( +
+ {locationResults.map((loc, i) => ( + + ))} +
+ )} +
+ )} +

+ Search and select your city for accurate weather data on the dashboard. +

+
+
+
+ +
+ + {/* ── Right column: Security, Authentication, Integrations ── */} +
+ + {/* Security (auto-lock) */} + + +
+
+
+
+ Security + Configure screen lock behavior +
+
+
+ +
+
+ +

+ Automatically lock the screen after idle time +

+
+ +
+
+ + setAutoLockMinutes(e.target.value === '' ? '' : parseInt(e.target.value) || '')} + onBlur={handleAutoLockMinutesSave} + onKeyDown={(e) => { if (e.key === 'Enter') handleAutoLockMinutesSave(); }} + className="w-20" + disabled={!autoLockEnabled || isUpdating} + /> + minutes +
+
+
+ + {/* Authentication (TOTP + password change) */} + + {/* Integrations (ntfy push notifications) */}