import React from 'react'; import { makeStyles } from '@material-ui/core/styles'; import List from '@material-ui/core/List'; import ListItem from '@material-ui/core/ListItem'; import ListItemText from '@material-ui/core/ListItemText'; import Collapse from '@material-ui/core/Collapse'; import Drawer from '@material-ui/core/Drawer'; import Switch from '@material-ui/core/Switch'; import ExpandLess from '@material-ui/icons/ExpandLess'; import ExpandMore from '@material-ui/icons/ExpandMore'; import { HuePicker } from 'react-color'; const useStyles = makeStyles({ list: { width: 250, }, header: { backgroundColor: '#1976d2', textAlign: 'center', height: '4rem', fontSize: '1.2rem', color: 'white', fontWeight: 600, paddingTop: '1.2rem', }, }); type SettingsSidebarProps = { open: boolean; toggle: (open: boolean) => void; palletType: string; handleThemeChange: (value: 'light' | 'dark' | 'navbar' | 'sidebar') => void; settings: { label: string; state: any }[]; handleChangeNavbar: (value: string, param: string, theme: string) => void; }; const SettingsSidebar = (props: SettingsSidebarProps) => { const { open, toggle, palletType, settings, handleChangeNavbar, handleThemeChange } = props; const [styles, setStyles] = React.useState({ background: '#fff', txt: '#000', search: '#fff', textSidebar: '#000', backgroundSidebar: '#fff', activeTab: '#2196f3', openSidebar: false, openNavbar: false, }); const { background, openNavbar, txt, search, activeTab, openSidebar, backgroundSidebar, textSidebar } = styles; const classes = useStyles(); return ( toggle(false)}>
SETTINGS
{[ { text: 'Dark background', id: 'dark' }, { text: 'Light background', id: 'light' }, { text: 'Dark navbar', id: 'navbar' }, { text: 'Dark sidebar', id: 'sidebar' }, ].map(({ id, text }: any) => ( handleThemeChange(id)}> ))} {settings.map(({ state: itemState, label }: any) => { const [state, setState] = itemState; return ( setState(!state)} color='primary' name='checkedB' inputProps={{ 'aria-label': 'primary checkbox' }} /> ); })} setStyles((prevState: any) => ({ ...prevState, openNavbar: !prevState.openNavbar }))}> {openNavbar ? : } Background navigation { handleChangeNavbar(hex, '--custom-nav-bg', 'customNavbar'); setStyles((prevState: any) => ({ ...prevState, background: hex })); }} /> Text navigation { handleChangeNavbar(hex, '--custom-nav-txt', 'customNavbar'); setStyles((prevState: any) => ({ ...prevState, txt: hex })); }} /> Search navigation panel { handleChangeNavbar(hex, '--custom-nav-search', 'customNavbar'); setStyles((prevState: any) => ({ ...prevState, search: hex })); }} /> setStyles((prevState: any) => ({ ...prevState, openSidebar: !prevState.openSidebar }))}> {openSidebar ? : } Text sidebar { handleChangeNavbar(hex, '--custom-sidebar-txt', 'customSidebar'); setStyles((prevState: any) => ({ ...prevState, textSidebar: hex })); }} /> Background sidebar { handleChangeNavbar(hex, '--custom-sidebar-bg', 'customSidebar'); setStyles((prevState: any) => ({ ...prevState, backgroundSidebar: hex })); }} /> Active tab sidebar { handleChangeNavbar(hex, '--custom-sidebar-active-tab', 'customSidebar'); setStyles((prevState: any) => ({ ...prevState, activeTab: hex })); }} />
); }; export default SettingsSidebar;