>> Единственное, чего не понял, это как в стили за

Единственное, чего не понял, это как в стили запихать это: display: citiesOpened ? 'block' : 'none',

Написал ответ здесь.

Как думаешь, чего следующее ковырять?

Сейчас я поправлю нейминг в стилях и попробуй тогда вынести в отдельный компонент DropdownMenu, чтобы в нем уже были как положено interfaces.ts и styles.ts, и чтобы его можно было импортировать в меню. Очень хорошая задачка.