diff --git a/frontend/autometabuilder/app/layout.tsx b/frontend/autometabuilder/app/layout.tsx index 2050b1e..01d1d90 100644 --- a/frontend/autometabuilder/app/layout.tsx +++ b/frontend/autometabuilder/app/layout.tsx @@ -23,7 +23,7 @@ export default function RootLayout({ children: React.ReactNode; }>) { return ( - +
{children} diff --git a/frontend/autometabuilder/components/layout/PageLayout.tsx b/frontend/autometabuilder/components/layout/PageLayout.tsx index 844147a..86930f8 100644 --- a/frontend/autometabuilder/components/layout/PageLayout.tsx +++ b/frontend/autometabuilder/components/layout/PageLayout.tsx @@ -1,5 +1,7 @@ -import { ReactNode } from "react"; -import { Box, Toolbar, Typography } from "@mui/material"; +"use client"; + +import { ReactNode, useEffect, useState } from "react"; +import { Box, IconButton, Toolbar, Typography } from "@mui/material"; import { NavigationItem } from "../../lib/types"; import Sidebar from "./Sidebar"; @@ -12,11 +14,28 @@ type PageLayoutProps = { }; export default function PageLayout({ navItems, section, onSectionChange, t, children }: PageLayoutProps) { + const [theme, setTheme] = useState<"light" | "dark">("light"); + + useEffect(() => { + const initialTheme = document.documentElement.getAttribute("data-theme"); + if (initialTheme === "dark") { + setTheme("dark"); + } + }, []); + + useEffect(() => { + document.documentElement.setAttribute("data-theme", theme); + }, [theme]); + + const handleToggleTheme = () => { + setTheme((prev) => (prev === "light" ? "dark" : "light")); + }; + return (