Repository navigation
feat: Filter proposal states server side - #3144
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Automated review
Commit 553f0984. This review replaces any earlier review on this pull request.
Verdict: minor issues
1 finding(s) are commented on the lines below.
Full detail, other severities, and the accept/reject controls are on the scan page.
Findings you reject there stop being reported for this repository.
| @@ -184,10 +186,6 @@ export const ProposalsV3List = () => { | |||
| data.pages.forEach((page) => listItems.push(...page.proposals)); | |||
There was a problem hiding this comment.
Search results ignore the selected proposal state filter
medium · bug
The diff removes the client-side filter listItems.filter((proposal) => proposal.badgeState === filterState). That filter ran on listItems after the list was built, so it probably also filtered search results. Now only useGovernanceProposals gets the state filter. useGovernanceProposalsSearch(query) still takes no state argument. A user who picks a state such as "Executed" and then types a search term will see proposals in every state. The dropdown still shows the selected state, so the results do not match the visible filter. The search branch is not in the diff context, so this finding assumes that search results also go into listItems.
Why this severity: The bug occurs only when a user combines search with a state filter. The user then sees wrong results, but no data is lost.
Suggested fix: Pass the cache state to useGovernanceProposalsSearch and include it in that query key, if the backend search endpoint supports a state filter. Otherwise, keep a client-side filter on the search results only.
Review harness · reply here to accept or reject this finding
|
📦 Next.js Bundle Analysis for aave-uiThis analysis was generated by the Next.js Bundle Analysis action. 🤖 🎉 Global Bundle Size Decreased
DetailsThe global bundle is the javascript bundle that loads alongside every page. It is in its own category because its impact is much higher - an increase to its size means that every page on your website loads slower, and a decrease means every page loads faster. Any third party scripts you have added directly to your app using the If you want further insight into what is behind the changes, give @next/bundle-analyzer a try! Three Pages Changed SizeThe following pages changed size from the code in this PR compared to its base branch:
DetailsOnly the gzipped size is provided here based on an expert tip. First Load is the size of the global bundle plus the bundle for the individual page. If a user were to show up to your website and land on a given page, the first load size represents the amount of javascript that user would need to download. If Any third party scripts you have added directly to your app using the Next to the size is how much the size has increased or decreased compared with the base branch of this PR. If this percentage has increased by 20% or more, there will be a red status indicator applied, indicating that special attention should be given to this. |
|
📦 Next.js Bundle Analysis for aave-uiThis analysis was generated by the Next.js Bundle Analysis action. 🤖 🎉 Global Bundle Size Decreased
DetailsThe global bundle is the javascript bundle that loads alongside every page. It is in its own category because its impact is much higher - an increase to its size means that every page on your website loads slower, and a decrease means every page loads faster. Any third party scripts you have added directly to your app using the If you want further insight into what is behind the changes, give @next/bundle-analyzer a try! Three Pages Changed SizeThe following pages changed size from the code in this PR compared to its base branch:
DetailsOnly the gzipped size is provided here based on an expert tip. First Load is the size of the global bundle plus the bundle for the individual page. If a user were to show up to your website and land on a given page, the first load size represents the amount of javascript that user would need to download. If Any third party scripts you have added directly to your app using the Next to the size is how much the size has increased or decreased compared with the base branch of this PR. If this percentage has increased by 20% or more, there will be a red status indicator applied, indicating that special attention should be given to this. |
Changes
Passes the
statefilter to the backend, instead of fetching all proposals and filtering FE side.Also adds
keepPreviousDatafrom react query v5 for smooth search, prevents the screen from flashing on every debounce, see videos below.Before :
Screen.Recording.2026-10-20.at.6.59.33.PM.mov
After :
Screen.Recording.2026-10-20.at.7.02.33.PM.mov