У меня есть меню пиктограмм, которое содержит список пунктов меню с флажками. Я хочу добавить заголовок в меню, когда пользователь щелкает значок и открывает раскрывающийся список в верхней части раскрывающегося списка с помощью кнопки закрытия.
В настоящее время я использую 1-й элемент меню и отключаю его , переопределить стиль и отобразить заголовок. Я действительно ненавижу это, потому что это не так, как надо. Теперь я хочу добавить кнопку закрытия с правой стороны от заголовка, но, поскольку элемент меню отключен, я не могу этого сделать.
Вот мой код:
<DropdownButtonMenu
id="customized-menu"
anchorEl={anchorEl}
keepMounted
PaperProps={{
style: {
maxHeight: 225,
},
}}
open={Boolean(anchorEl)}
onClose={handleClose}
>
<TitleMenuItem disabled={true} className='classes.title'>
<Typography variant="subtitle1" >
{menuTitle}
</Typography>
//**NEED TO ADD A CLOSE BUTTON HERE AND NOT BE DISABLED
</TitleMenuItem>
{formColumns.map(colobj => (
<CheckboxMenuItem
key={`ckb-${colobj.name}`}
className={classes.SearchMenuItem}
selected={false}
onClick={handleClose} >
<Checkbox
checked={GetChecked(colobj)}
onChange={handleCheckboxClick} //Need to add 1,2 or 3 as parameter to this onChange event
className={classes.searchColumnCheckbox}
value={`${colobj.name}`} />
{colobj.label}
</CheckboxMenuItem>
))}
</DropdownButtonMenu>
I создал TitleMenuItem, создав подкласс MenuItem, как показано ниже:
const TitleMenuItem = styled(MuiMenuItem)({
disabled: props => props.opacity ? '1.0' : '1.0',
color: props => props.color ? '#0047ab' : '#0047ab',
margin: '0px',
padding: '0px',
paddingLeft: '8px',
});
И сделал то же самое с DropDownButtonMenu и CheckboxMenuItem:
const DropdownButtonMenu = withStyles({
paper: {
border: "1px solid #d3d4d5",
muiListPadding: {
marginTop: '0px',
paddingTop: '0px',
}
},
})(props => (
<Menu
elevation={0}
getContentAnchorEl={null}
anchorOrigin={{
vertical: "bottom",
horizontal: "center"
}}
transformOrigin={{
vertical: "top",
horizontal: "center"
}}
{...props}
/>
));
const CheckboxMenuItem = withStyles(theme => ({
root: {
"&:focus": {
backgroundColor: theme.palette.primary.main,
color: theme.palette.common.white,
"& .MuiListItemIcon-root, & .MuiListItemText-primary": {
color: theme.palette.common.white
}
},
paddingTop: "2px",
paddingBottom: "2px",
paddingRight: "0px",
paddingLeft: "4px",
margin: "2px",
fontSize: "0.8rem",
lineHeight: "1",
}
}))(MenuItem);
Я ошибаюсь в этом? Все, что мне нужно, это заголовок в раскрывающемся списке меню с кнопкой закрытия. Любая помощь будет принята с благодарностью!