After T319349 is completed, we need to create skin component classes to organize the template data into the nested format required. While not blocking T318434, this would speed things up as well as supporting the upcoming work on T317899.
TODO:
[] The menu and dropdown component classes should handle icon/button styles (currently handled by `Hooks::updateDropdownMenuData`)
[] `Hooks:updateItemData` which is the shared function that handles icon/button styles should be moved to somewhere other than Hooks.
= Acceptance criteria: =
- [] Before starting work discuss approach and scope with other web devs.
- [ ] Dropdown and Menu skin component classes are created
- [ ] If empty, menu should default to hidden
- [ ] Existing menus/dropdown php code (Page tools, language dropdown and more menu) is updated to use the new skin components. User menu dropdown is handled in https://phabricator.wikimedia.org/T319356