dark mode added

This commit is contained in:
Artur Lozovski 2023-12-15 17:55:28 +00:00
parent 5a0568bec9
commit f42e57d464
6 changed files with 44 additions and 13 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -4,14 +4,14 @@
"src": "assets/logo.svg"
},
"index.css": {
"file": "assets/index-458d2033.css",
"file": "assets/index-6a152703.css",
"src": "index.css"
},
"index.html": {
"css": [
"assets/index-458d2033.css"
"assets/index-6a152703.css"
],
"file": "assets/index-1daa8daf.js",
"file": "assets/index-ba274e55.js",
"isEntry": true,
"src": "index.html"
}

View file

@ -0,0 +1,27 @@
import { useState, useEffect } from "react";
const DarkModeToggle = () => {
const getInitialState = () => {
const storedDarkMode = localStorage.getItem("darkMode");
return storedDarkMode ? JSON.parse(storedDarkMode) : false;
};
const [isDarkMode, setIsDarkMode] = useState<boolean>(getInitialState);
useEffect(() => {
document.body.classList.toggle("dark", isDarkMode);
localStorage.setItem("darkMode", JSON.stringify(isDarkMode));
}, [isDarkMode]);
return (
<div className="fixed bottom-5 right-5">
<button
onClick={() => setIsDarkMode((prev) => !prev)}
className="ml-2 text-gray-700 dark:text-gray-300"
>
Dark Mode
</button>
</div>
);
};
export default DarkModeToggle;

View file

@ -25,7 +25,9 @@ export const FormInput: React.FC<{
}) => {
return (
<div className="flex flex-col gap-2 text-sm mb-2">
<label htmlFor={name}>{label}</label>
<label htmlFor={name} className="dark:text-slate-500">
{label}
</label>
<input
autoFocus={autoFocus}
type={inputType}

View file

@ -7,6 +7,7 @@ import { IconButton } from "./components/buttons/IconButton";
import { BsBodyText } from "react-icons/bs";
import { LogStreamModal } from "./components/modal/LogStreamModal";
import { Header } from "./components/Header";
import DarkModeToggle from "./components/buttons/DarkModeToggle";
export interface ErrorWithLabel {
text: string;
@ -86,6 +87,7 @@ export const RqbitWebUI = (props: {
</div>
<LogStreamModal show={logsOpened} onClose={() => setLogsOpened(false)} />
<DarkModeToggle />
</AppContext.Provider>
);
};