feat: The Other Dude v9.0.1 — full-featured email system

ci: add GitHub Pages deployment workflow for docs site

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Jason Staack
2026-03-08 17:46:37 -05:00
commit b840047e19
511 changed files with 106948 additions and 0 deletions

View File

@@ -0,0 +1,39 @@
/**
* useSimpleConfigMode -- Per-device Simple/Standard mode toggle with localStorage persistence.
*
* Each device independently stores its mode preference. Default is 'standard' (opt-in to Simple).
*/
import { useState, useCallback } from 'react'
const STORAGE_KEY = 'mikrotik-simple-mode'
type ConfigMode = 'simple' | 'standard'
function readPrefs(): Record<string, ConfigMode> {
try {
const stored = localStorage.getItem(STORAGE_KEY)
return stored ? (JSON.parse(stored) as Record<string, ConfigMode>) : {}
} catch {
return {}
}
}
export function useSimpleConfigMode(deviceId: string) {
const [mode, setMode] = useState<ConfigMode>(() => {
const prefs = readPrefs()
return prefs[deviceId] ?? 'standard'
})
const toggleMode = useCallback(
(newMode: ConfigMode) => {
setMode(newMode)
const prefs = readPrefs()
prefs[deviceId] = newMode
localStorage.setItem(STORAGE_KEY, JSON.stringify(prefs))
},
[deviceId],
)
return { mode, toggleMode }
}