Есть: https://github.com/Pivkarta/pivkarta.ru-2/commit/f658013e24f93ae1605b6eeb16296785036ea2c6 Единственное, чего не понял, это как в стили запихать это: display: citiesOpened ? 'block' : 'none',

Технически работает. Но результат надо улучшить. 1. Избавиться от style={...}, перенести стили в styles.ts 2. Навесить на document обработчик, чтобы по клику меню закрывалось. А то сейчас только по клику в сам корневой пункт меню.

Давай. Исправляй и выливай коммит.

Оказалось ,не включил Eslint... Про хуки понял - исправляюсь

В общем, поправь хуки и должно заработать (у меня заработало, но не буду выливать, тебе надо самому попытаться).

Если заработает, то он тебе покажет вот такое: Собственно, эту ошибку и в браузере видно, и на ошибки в браузере обязательно надо обращать внимание. Это распространенная ошибка, которой не должно быть: все хуки должны выполняться обязательно и до их выполнения никак логика не должна обрываться по каким-либо условиям. У тебя же ошибка в том, что useState() прописан внутри useMemo(). То есть хуки внутри хуков тоже нельзя прописывать.

Eslint надо ставить. И надо потом убедиться, что он активен: Если перечеркнут, надо по нему кликнуть и во всплывашке разрешить его (Allow).