bug: market switcher search reports "No markets found" for legacy markets
Maintainers usually reply within 1 day
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 82/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- typescript
- Domain
- frontend
Research direction
The problem sits in src/components/MarketSwitcher.tsx: the noResults computation around lines 614-620 leaves out legacy, and the legacy group only renders when showLegacy is on (around lines 707-712). Start by reproducing a search for a legacy market such as Gnosis with the switch off, then decide whether legacy matches should show during an active query or just count toward the empty-state check. Done means a query matching only a legacy market no longer shows "No markets found", and the user can see the match or is told to turn on "Show legacy markets".
Written by the indexing model from the issue text.
Description
Describe the bug
Searching for a legacy market in the market switcher renders "No markets found", even though the market exists and matches the query. Affects every market in the legacy category — Gnosis, Sonic, Scroll, Metis, ZKsync, Soneium, EtherFi — on any market/network.
The search filter itself works: the match is computed and lands in the legacy group. Two things then hide it:
- The legacy group is only rendered when the "Show legacy markets" switch is on (
src/components/MarketSwitcher.tsx:707-712). noResults(src/components/MarketSwitcher.tsx:614-620) countspinned,ethereum,l2,other,v4Ethereumandv4Other— but notlegacy.
So when a query matches only legacy markets, every counted group is empty, noResults is true, and the empty state renders on top of a match that was found but not displayed.
// src/components/MarketSwitcher.tsx:614
const noResults =
pinned.length === 0 &&
ethereum.length === 0 &&
l2.length === 0 &&
other.length === 0 &&
v4Ethereum.length === 0 &&
v4Other.length === 0; // legacy.length is never considered
This became user-visible for Gnosis and Sonic when #3111 moved them into the legacy category (MarketSwitcher.tsx:158-159); the showLegacy switch itself arrived with the v3 uplift (#3075).
To Reproduce
Steps to reproduce the behavior:
- Go to https://app.aave.com (any market)
- Open the market switcher in the header
- Leave "Show legacy markets" off (its default on every page load)
- Type
Gnosisinto the search box - See "No markets found", although Gnosis exists and is selectable
Expected behavior
An explicit search should surface a matching market. Either show legacy matches whenever a search query is active, or at minimum stop reporting "No markets found" when legacy has matches — for example by including legacy.length in noResults and telling the user the matches are under "Show legacy markets".
Screenshots
n/a — reproducible from the source as described above.
Desktop (please complete the following information):
- OS: any
- Browser: any (not browser-specific)
- Version:
main@ 32cc548b9
Smartphone (please complete the following information):
- Device: any
- OS: any
- Browser: any (the same code path renders the mobile sheet)
- Version:
main@ 32cc548b9
Additional context
Users holding positions in a legacy market are the ones most likely to search for it by name, so the empty-state message lands exactly on the people who need the market most. Happy to open a PR for this.
- Dominant language
- TypeScript
- Stars
- 537
- Forks
- 495
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 14
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from aave/interface
-
bug: the current market is missing from the market switcher when it is a legacy marketPossibly taken A pull request linked to this issue is open or already merged. Open
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
Maintainers usually reply within 1 day
-
Staking: "Claim all" Umbrella rewards button removed by v3 upliftPossibly taken @MrMichou claimed this 1 day ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
Maintainers usually reply within 1 day
-
Typo: Principle Tokens -> Principal TokensPossibly taken @Shivamd0608 claimed this 139 days ago. Openbug new issue
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
aave/interface#2861 · 1 comment ·
Maintainers usually reply within 1 day
-
app.aave.com/governance - UI - False 'Payload Executed' Text StampPossibly taken @shivam-V8 claimed this 1 day ago. Openbug new issue
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
aave/interface#2480 · 1 comment ·
Maintainers usually reply within 1 day
-
bug: swap token controls are not fully keyboard and screen-reader accessibleMay be free again @wolf1276 claimed this 13 days ago, and no pull request is open. Open
Difficulty 3/5 1-2 days Newbie friendliness 72/100
aave/interface#3100 · 2 comments ·
Maintainers usually reply within 1 day
Similar issues
-
area:deploy task
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
wilanis/wilanis-js#1017 ·
Maintainers usually reply within 1 day
-
documentation v2
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
modelcontextprotocol/servers#5133 ·
Maintainers usually reply within 1 day
-
budget bug feature frontend good-issue medium needs-review OSCI'26 payments
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
SatyamPandey-07/WorkSphere#5990 · 1 comment ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
lugassawan/swe-workbench#799 ·
Maintainers usually reply within 1 day
-
bug good first issue javascript
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
yukikotani231/sqlsift#326 ·
Maintainers usually reply within 1 day