import { NextPage } from "next"; import { FC } from "react"; import Box from "@mui/material/Box"; import Button from "@mui/material/Button"; import ButtonGroup from "@mui/material/ButtonGroup"; import Container from "@mui/material/Container"; import Divider from "@mui/material/Divider"; import Typography from "@mui/material/Typography"; import { blue, red, green, cyan, purple, yellow, orange } from "@mui/material/colors/"; import { useTheme } from "@mui/material/styles/"; import { toCamelCase } from "@src/utils"; import { useSettings } from "@utils/hooks"; import Layout from "@components/Layout"; const Settings: NextPage = () => { const [settings, setSettings] = useSettings(); const theme = useTheme(); const setSetting = (key: string, value?: string): void => { setSettings({ ...settings, [key]: value }); }; const ColorSetting: FC<{ type: string }> = ({ type }) => { const camelCase = toCamelCase(type) as "primaryColor" | "accentColor"; return ( {type} {[ blue[800], red[800], green[800], cyan[800], purple[800], yellow[800], orange[800] ].map((color) => ( setSetting(camelCase, color)} key={color} component="span" sx={{ width: 24, height: 24, backgroundColor: color, borderRadius: "50%", border: color == settings[camelCase] ? { borderColor: theme.palette.text.primary, borderWidth: 1, borderStyle: "solid" } : null, cursor: "pointer", ml: 1.5 }} /> ))} ); }; return ( Settings Theme General theme Player Miscellaneous ); }; export default Settings;