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:
= Acceptance criteria: =
- [x] Before starting work discuss approach and scope with other web devs.
- [x] Dropdown component is created (VectorComponentDropdown)
- [x] Menu skin component classes is created (VectorComponentMenu)
- Existing menus/dropdown php code is updated to use new skin components:
-- [x] Page tools (VectorComponentPageTools)
-- [] Language (VectorComponentLanguageDropdown) https://gerrit.wikimedia.org/r/c/mediawiki/skins/Vector/+/868105
-- [x] MainMenu (VectorComponentMainMenu done in https://gerrit.wikimedia.org/r/c/mediawiki/skins/Vector/+/838233)
-- [] 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