This is a placeholder epic for building, iterating on, and eventually shipping the new search widget.
{F31551160 width=512}
=== Acceptance Criteria
[] Drop down results are suggested and updated on user input
[] Results must include:
- Page name
- Image (if available)
- Wikidata description (if available)
- Access to search results page
[] If a user presses enter or taps the "search pages containing..." result, Special:Search is shown
[] Results should have some level of HTTP caching. E.g., typing "f", "o", "o", <backspace> should show cached results for "fo" instead of having to wait for a new response.
[] Vue.js lessons learned are documented
[] If any shareable components (e.g., buttons) are made as part of this work, they're shareable (or a task is written to make them shareable).
[] Results must include an intelligent loading state (e.g., show placeholder cards when content is loading)
=== Questions
- How do we want to approach this work? A prototype? Start in Nearby? Something else?
- Where will the components live? Vector? A new repo? Somewhere else?
- Do we want to add the random die here?
- Do we want a more button-like presentation for "search pages containing" or should it look like a result as it does in the mock?
- What instrumentation is needed?
- What to do with the existing search widget on Special:Search?
- Do we want to taskify DRYing up other search implementations?
- Do we need an API for DWIM or will this be covered by Core API?
- Can we implement an OAUTH2 approach as part of this work instead of session cookie?
- Are changes to the language switcher necessary as part of this work>
=== References
- [[ https://www.mediawiki.org/wiki/User:JDrewniak_(WMF)/notes/Search_widgets_at_Wikimedia | Jan's cool search notes ]]
- [[ https://docs.google.com/document/d/1eigJWmai9l9hb46jRFm3FUwbrd2WOr2ApNByjMWAGOA/edit | Internal notes and ideas ]]