import { useState } from 'react' import { Box, Typography, styled, ToggleButtonGroup, ToggleButton, ListItem, List, ListItemText, ListItemButton, } from '@mui/material' import MuiDrawer from '@/components/yaui/Drawer' import { LightMode, DarkMode } from '@mui/icons-material' import { useChangeMode, useSelectedMode, usePresetPalette, useSelectedPalette, useChangePalette, } from '@/components/context/YaThemeProdiver' import { useTranslate, useSelectedLanguage, useLanguages, useChangeLang, } from '@/components/context/YaLocalesProvider' import ColorBar from './ColorBar' import type { SettingDrawerProps } from '../layout' import type { AppThemeMode } from '@/configs/config' const Heading = styled(Typography)(({ theme }) => ({ margin: '20px 0 10px', color: theme.palette.grey[600], fontWeight: 700, fontSize: theme.typography.pxToRem(11), textTransform: 'uppercase', letterSpacing: '.08rem', })) const IconToggleButton = styled(ToggleButton)({ display: 'flex', justifyContent: 'center', width: '100%', '& > *': { marginRight: '8px', }, }) const SettingDrawer: React.FC = (props) => { const { opened, onClose } = props // locales const t = useTranslate() const selectedlang = useSelectedLanguage() const languages = useLanguages() const changeLang = useChangeLang() // mode const changeColorMode = useChangeMode() const selectedMode = useSelectedMode() // palette const presetPalette = usePresetPalette() const selectedPalette = useSelectedPalette() const changePalette = useChangePalette() const [mode, setMode] = useState(selectedMode as any) const [lang, setLang] = useState(selectedlang) const [palatte, setPalatte] = useState(selectedPalette) const handleChangeThemeMode = (e: React.MouseEvent, themeMode: string | null) => { if (themeMode) { setMode(themeMode as any) changeColorMode() } } const handleChangeLang = (l: string) => { setLang(l) changeLang(l) } const handleChangeColor = (p: string) => { setPalatte(p) changePalette(JSON.parse(p)) } return ( {t('mode')} {t('light')} {t('dark')} {t('language')} {languages.map((item) => ( { handleChangeLang(item) }} > ))} color {presetPalette.map((item: any) => { const key = item && JSON.stringify(item) return ( { handleChangeColor(key) }} > ) })} ) } export default SettingDrawer