Page MenuHomePhabricator

Consider changing Menu's footer slot to no-results
Closed, ResolvedPublic

Description

The Menu component has a footer slot for adding non-interactive content at the end of the list of menu items. The only current use case for this is "no results" text, as demonstrated with Lookup and Combobox.

This approach doesn't work with our implementation of TypeaheadSearch. TypeaheardSearch has a final, interactive item called the "search footer," which is meant to link to the search page for the current input value. This item must be reachable via arrow key navigation just like the actual menu items. To achieve this, we tack on a fake item at the end of the search results array for the search footer, then use the Menu/MenuItem's main slot to add custom content just for the search footer.

As part of T286922, a "no results" message must be enabled within TypeaheadSearch. The current footer slot within Menu can't be used for this, because it would display below the search footer.

I propose doing the following:

  • Rename the Menu component's footer slot to no-results, narrowing its use case to only this purpose
  • Update the components that offer this slot (e.g. Combobox and Lookup)
  • Update demos that use this slot

Once we do these things, this patch can be updated to use the no-results slot to achieve the design and UX we want.

Event Timeline

Change 772930 had a related patch set uploaded (by Anne Tomasevich; author: Anne Tomasevich):

[design/codex@main] Menu: Change footer slot to no-results

https://gerrit.wikimedia.org/r/772930

I went ahead and opened a patch for this to facilitate discussion. If we think we want to move forward with this, @StevenSun can rebase the patch for T286922 onto this one and use the no-results slot in TypeaheadSearch.

Change 772930 merged by jenkins-bot:

[design/codex@main] Menu: Change footer slot to no-results

https://gerrit.wikimedia.org/r/772930