I've read and tried many solutions already, but I'm new to React and I cannot figure out how to add class {s.highlighted} when the div is clicked. Can someone please explain that to me? Here is my code but it's not written by me. I prefer to add {s.highlighted} to "ListItem" when clicked and remove it from the element that was active previously.
It looks like previous developer started doing something but it doesn't work correctly. For now is only 'test-helpers' link always highlighted. What wrong with this code?
const useStyles = makeStyles((theme) =>
createStyles({
link: {
textDecoration: 'none',
color: theme.palette.grey[900],
},
highlighted: {
backgroundColor: lighten(green[500], 0.5),
},
})
)
// eslint-disable-next-line
//@ts-nocheck
export const MenuItems: React.FC = () => {
const s = useStyles()
return (
<div>
<Link to="/dashboard/proxies" className={s.link}>
<ListItem>
<ListItemIcon>
<CloudDone />
</ListItemIcon>
<ListItemText primary="Proxies" />
</ListItem>
</Link>
<Link to="/dashboard/permissions" className={s.link}>
<ListItem>
<ListItemIcon>
<VerifiedUser />
</ListItemIcon>
<ListItemText primary="Permissions" />
</ListItem>
</Link>
<Link to="/dashboard/test-helpers" className={classnames(s.link)}>
<ListItem className={s.highlighted}>
<ListItemIcon>
<Help />
</ListItemIcon>
<ListItemText primary="Test Helpers" />
</ListItem>
</Link>
<Link to="/dashboard/plans" className={s.link}>
<ListItem>
<ListItemIcon>
<FormatListNumbered />
</ListItemIcon>
<ListItemText primary="Plans" />
</ListItem>
</Link>
<Link to="/dashboard/user-management" className={s.link}>
<ListItem>
<ListItemIcon>
<Person />
</ListItemIcon>
<ListItemText primary="User Management" />
</ListItem>
</Link>
<Link to="/dashboard/activate-subscription" className={s.link}>
<ListItem>
<ListItemIcon>
<PersonAdd />
</ListItemIcon>
<ListItemText primary="Activate Subscription" />
</ListItem>
</Link>
<Link to="/dashboard/user-plan-limits" className={s.link}>
<ListItem>
<ListItemIcon>
<BarChartIcon />
</ListItemIcon>
<ListItemText primary="User Plan Limits" />
</ListItem>
</Link>
</div>
)
}