https://bk10895.medium.com/efficient-state-toggling-in-react-how-to-use-setisopen-open-open-300c7c80f69d