import * as React from 'react'; import { CssVarsProvider, useColorScheme } from '@mui/joy/styles'; import Button from '@mui/joy/Button'; import CssBaseline from '@mui/joy/CssBaseline'; import Box from '@mui/joy/Box'; import IconButton, { IconButtonProps } from '@mui/joy/IconButton'; import ToggleButtonGroup from '@mui/joy/ToggleButtonGroup'; import FormatAlignCenterIcon from '@mui/icons-material/FormatAlignCenter'; import FormatAlignJustifyIcon from '@mui/icons-material/FormatAlignJustify'; import DarkMode from '@mui/icons-material/DarkMode'; import LightMode from '@mui/icons-material/LightMode'; function ColorSchemeToggle({ onClick, sx, ...props }: IconButtonProps) { const { mode, setMode } = useColorScheme(); const [mounted, setMounted] = React.useState(false); React.useEffect(() => { setMounted(true); }, []); if (!mounted) { return ; } return ( { if (mode === 'light') { setMode('dark'); } else { setMode('light'); } onClick?.(event); }} sx={[ mode === 'dark' ? { '& > *:first-of-type': { display: 'none' } } : { '& > *:first-of-type': { display: 'initial' } }, mode === 'light' ? { '& > *:last-of-type': { display: 'none' } } : { '& > *:last-of-type': { display: 'initial' } }, ...(Array.isArray(sx) ? sx : [sx]), ]} > ); } export default function JoyToggleButton() { const [alignment, setAlignment] = React.useState>(['left']); return ( {(['primary', 'neutral', 'danger', 'success', 'warning'] as const).map((color) => (['plain', 'outlined', 'soft', 'solid'] as const).map((variant) => ( { setAlignment(newValue); }} > )), )} ); }