diff options
| author | Pinapelz <yukais@pinapelz.com> | 2026-04-16 23:42:42 -0700 |
|---|---|---|
| committer | Pinapelz <yukais@pinapelz.com> | 2026-04-16 23:42:42 -0700 |
| commit | 29fefe94613e4ff8f63c7a1871af8fdf0cd4f656 (patch) | |
| tree | ca1c0146aca09d30a5a6f913a54d54a7eec175a2 | |
| parent | 8aa07787a4ba0e0659e3596e3cd0a12dc9f2b929 (diff) | |
type: make bga opacity setting persist site-wideindex
| -rw-r--r-- | src/app/game/page.tsx | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/src/app/game/page.tsx b/src/app/game/page.tsx index 02ea319..dc0d93d 100644 --- a/src/app/game/page.tsx +++ b/src/app/game/page.tsx @@ -122,19 +122,18 @@ function GameInner() { const [clearShowing, setClearShowing] = useState(false); const [comboAnimKey, setComboAnimKey] = useState(0); const [countdown, setCountdown] = useState(0); - const [backgroundOpacity, setBackgroundOpacity] = useState(0); + const [backgroundOpacity, setBackgroundOpacity] = useState(() => { + if (typeof window === "undefined") return 0; + const stored = localStorage.getItem(BACKGROUND_OPACITY_KEY); + if (stored === null) return 0; + const parsed = Number(stored); + if (!Number.isFinite(parsed)) return 0; + return Math.min(100, Math.max(0, parsed)); + }); const [skipBacking, setSkipBacking] = useState(false); const isVideo = useMemo(() => isVideoUrl(audioUrl), [audioUrl]); - useEffect(() => { - const stored = localStorage.getItem(BACKGROUND_OPACITY_KEY); - if (stored === null) return; - const parsed = Number(stored); - if (Number.isFinite(parsed)) { - const clamped = Math.min(100, Math.max(0, parsed)); - setBackgroundOpacity(clamped); - } - }, []); + useEffect(() => { localStorage.setItem(BACKGROUND_OPACITY_KEY, String(backgroundOpacity)); |
