Close settings modal on theme change or fullscreen

This commit is contained in:
2026-01-06 19:58:31 +00:00
parent 3120207bd9
commit fc4eb077f0

View File

@@ -1,4 +1,4 @@
import React, { useState, useEffect, useRef, useCallback } from 'react'; import React, { useState, useLayoutEffect, useEffect, useRef, useCallback } from 'react';
import { BrowserRouter as Router, Route, Link, Switch } from 'react-router-dom'; import { BrowserRouter as Router, Route, Link, Switch } from 'react-router-dom';
import localForage from 'localforage'; import localForage from 'localforage';
import './Style-light.css'; import './Style-light.css';
@@ -132,7 +132,7 @@ function App() {
return () => document.removeEventListener('fullscreenchange', onFullScreenChange); return () => document.removeEventListener('fullscreenchange', onFullScreenChange);
}, []); }, []);
useEffect(() => { useLayoutEffect(() => {
if (theme === 'dark') { if (theme === 'dark') {
document.body.style.backgroundColor = '#1a1a1a'; document.body.style.backgroundColor = '#1a1a1a';
} else if (theme === 'black') { } else if (theme === 'black') {
@@ -187,16 +187,16 @@ function App() {
<div className="setting-group"> <div className="setting-group">
<h4>Theme</h4> <h4>Theme</h4>
<button className={theme === '' ? 'active' : ''} onClick={() => { light() }}>Light</button> <button className={theme === '' ? 'active' : ''} onClick={() => { light(); setSettingsOpen(false); }}>Light</button>
<button className={theme === 'dark' ? 'active' : ''} onClick={() => { dark() }}>Dark</button> <button className={theme === 'dark' ? 'active' : ''} onClick={() => { dark(); setSettingsOpen(false); }}>Dark</button>
<button className={theme === 'black' ? 'active' : ''} onClick={() => { black() }}>Black</button> <button className={theme === 'black' ? 'active' : ''} onClick={() => { black(); setSettingsOpen(false); }}>Black</button>
<button className={theme === 'red' ? 'active' : ''} onClick={() => { red() }}>Red</button> <button className={theme === 'red' ? 'active' : ''} onClick={() => { red(); setSettingsOpen(false); }}>Red</button>
{fullScreenAvailable && {fullScreenAvailable &&
<div style={{ marginTop: '0.5rem' }}> <div style={{ marginTop: '0.5rem' }}>
{!isFullScreen ? {!isFullScreen ?
<button onClick={() => goFullScreen()}>Enter Fullscreen</button> <button onClick={() => { goFullScreen(); setSettingsOpen(false); }}>Enter Fullscreen</button>
: :
<button onClick={() => exitFullScreen()}>Exit Fullscreen</button> <button onClick={() => { exitFullScreen(); setSettingsOpen(false); }}>Exit Fullscreen</button>
} }
</div> </div>
} }