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: =
- [x] Before starting work discuss approach and scope with other web devs.
- [ - [x] Dropdown component is createdted (VectorComponentDropdown)
- [x] Menu skin component classes is created
- [ ] If empty, menu should default to hidden (VectorComponentMenu)
- Existing menus/dropdown php code is updated to use new skin components:
- [] Page tools- [x] Page tools (VectorComponentPageTools)
-- [] Language (VectorComponentLanguageDropdown) https://gerrit.wikimedia.org/r/c/mediawiki/skins/Vector/+/868105
- [] Language-- [x] MainMenu (VectorComponentMainMenu done in https://gerrit.wikimedia.org/r/c/mediawiki/skins/Vector/+/838233)
--- [] MainMenu (should be done by other task)TableOfContents dropdown
-- [] UserMenu dropdown
- Cleanup:
- [] The new 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 (suggested: SkinVectorLegacy)
= QA steps =
- [] If the more menu or page tools menu is empty, the menu should not be shown