feat(market): add sortable columns to banner detail list with persistent preferences#10358
Open
limichange wants to merge 5 commits intoxfrom
Open
feat(market): add sortable columns to banner detail list with persistent preferences#10358limichange wants to merge 5 commits intoxfrom
limichange wants to merge 5 commits intoxfrom
Conversation
…ent preferences - Add sorting support for all numeric columns (Price, Change%, Market cap, Liquidity, Turnover, Txns, Traders, Holders) in banner detail pages - Persist sort preferences globally via Jotai globalAtom with AsyncStorage - Sync sort state across all banner detail pages - Support initial sort order restoration in Table HeaderColumn on remount
Contributor
✅ Snyk checks have passed. No issues have been found so far.
💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse. |
auto-merge was automatically disabled
February 26, 2026 09:24
Pull request was converted to draft
Keep original SORTABLE_COLUMNS (3 columns) for watchlist mode, use ALL_SORTABLE_COLUMNS (8 columns) only for sortable (banner) mode.
…etTokenListBase - MarketTokenListBase handles client-side sorting internally when clientSort is enabled - MarketBannerDetail only provides raw data and persistence callbacks - Clear separation: watchlist uses server-side sort (3 columns), clientSort uses client-side sort (8 columns)
- Move ETableSortType to type-only import - Use toSorted() instead of [...arr].sort()
Prevents watchlist toggle from overwriting banner detail sort preferences.
Contributor
Author
Review feedback addressed1. SORTABLE_COLUMNS expanding to watchlist (Devin comment #1) 2. MarketWatchlistOnlyChanged event overwriting banner sort (Devin comment #2) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Changes
atomNames.ts/market.ts— NewmarketBannerListSortAtomwithpersist: trueMarketBannerDetail.tsx— Client-side sorting with ref-based state sync, wired to global atomMarketTokenListBase.tsx— Newsortableprop, expandedSORTABLE_COLUMNS, passinitialSortOrderto Table headerTable/types.ts/HeaderColumn.tsx/Table/index.tsx— SupportinitialSortOrderinonHeaderRowto restore header arrow state on mountTest plan