Restore custom styled window controls
All checks were successful
Build Windows App / build-windows (push) Successful in 19m20s

This commit is contained in:
MrSphay
2026-05-01 18:57:33 +02:00
parent c76489a1e4
commit 1361ef657d
5 changed files with 84 additions and 43 deletions

View File

@@ -4,6 +4,8 @@ import {
FileDown,
FileInput,
Languages,
Maximize2,
Minus,
Plus,
RefreshCcw,
Settings,
@@ -271,14 +273,6 @@ function readTheme(): ThemeMode {
return stored && themeLabels.includes(stored) ? stored : "system";
}
function getEffectiveTheme(themeMode: ThemeMode): "light" | "dark" {
if (themeMode !== "system") {
return themeMode;
}
return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
}
export default function App() {
const [input, setInput] = useState(sampleEnv);
const [loadedPath, setLoadedPath] = useState<string | null>(null);
@@ -294,16 +288,6 @@ export default function App() {
useEffect(() => {
document.documentElement.dataset.theme = themeMode;
localStorage.setItem("envhelper-theme", themeMode);
const updateTitlebar = () => {
void window.envHelper?.setTitlebarTheme(getEffectiveTheme(themeMode));
};
const media = window.matchMedia("(prefers-color-scheme: dark)");
updateTitlebar();
media.addEventListener("change", updateTitlebar);
return () => media.removeEventListener("change", updateTitlebar);
}, [themeMode]);
useEffect(() => {
@@ -351,6 +335,23 @@ export default function App() {
<div className="titlebarMark">EH</div>
<span>EnvHelper</span>
</div>
<div className="windowControls">
<button aria-label="Minimize" onClick={() => window.envHelper?.minimizeWindow()} title="Minimize" type="button">
<Minus size={15} />
</button>
<button aria-label="Maximize" onClick={() => window.envHelper?.toggleMaximizeWindow()} title="Maximize" type="button">
<Maximize2 size={14} />
</button>
<button
aria-label="Close"
className="closeButton"
onClick={() => window.envHelper?.closeWindow()}
title="Close"
type="button"
>
<X size={15} />
</button>
</div>
</section>
<header className="toolbar">