Dreamer schedule — show local time, convert to UTC on save

This commit is contained in:
2026-04-26 23:32:36 -04:00
parent b6fa6e9445
commit 337f1fcca7
+16 -4
View File
@@ -280,15 +280,27 @@ export default function SettingsPanel() {
{dreaming ? 'Starting...' : dreamStarted ? 'Started ✓' : 'Dream'}
</SBtn>
</Row>
<Row label="Nightly schedule (UTC)" desc="Hour the dreamer fires automatically">
<Row label="Nightly schedule" desc="Hour the dreamer fires automatically (your local time)">
<select
value={settings.dream_hour_utc ?? 8}
onChange={e => updateSetting('dream_hour_utc', parseInt(e.target.value))}
value={(() => {
// Convert stored UTC hour to local hour for display
const utcHour = settings.dream_hour_utc ?? 8;
const d = new Date();
d.setUTCHours(utcHour, 0, 0, 0);
return d.getHours();
})()}
onChange={e => {
// Convert local hour to UTC for storage
const localHour = parseInt(e.target.value);
const d = new Date();
d.setHours(localHour, 0, 0, 0);
updateSetting('dream_hour_utc', d.getUTCHours());
}}
className="rounded-md px-2 py-1 text-sm"
style={{ background: 'var(--bg3)', border: '1px solid var(--border2)', color: 'var(--text)', fontFamily: 'var(--font-sans)' }}
>
{Array.from({length: 24}, (_, i) => (
<option key={i} value={i}>{i.toString().padStart(2,'0')}:00 UTC</option>
<option key={i} value={i}>{i.toString().padStart(2,'0')}:00</option>
))}
</select>
</Row>