- {/* ── 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) */}