import { FluentProvider, teamsDarkTheme, teamsHighContrastTheme, teamsLightTheme, webDarkTheme, webLightTheme, } from "@fluentui/react-components"; import React from "react"; export type Theme = | "highcontrast" | "teamsdark" | "teamslight" | "webdark" | "weblight"; type ThemeContext = { theme: Theme; set: (theme: Theme) => void }; const ThemeContextK = React.createContext(null); export function ThemeProvider(p: React.PropsWithChildren): React.ReactElement { const [theme, setTheme] = React.useState("teamsdark"); let fluentTheme = teamsHighContrastTheme; switch (theme) { case "teamsdark": fluentTheme = teamsDarkTheme; break; case "teamslight": fluentTheme = teamsLightTheme; break; case "highcontrast": fluentTheme = teamsHighContrastTheme; break; case "webdark": fluentTheme = webDarkTheme; break; case "weblight": fluentTheme = webLightTheme; break; } return ( {p.children} ); } export function useTheme(): ThemeContext { return React.useContext(ThemeContextK)!; }