Description
In the standard Admin UI List View, when selecting a Query Preset, modifying filter inputs, and subsequently clicking Reset, the list table re-fetches and the URL search parameters update as expected. However, the internal form state of the Filter UI (WhereBuilder) does not re-sync with the updated URL parameters. The inputs remain stuck on the previously modified values until the page is hard-reloaded.
Link to the code that reproduces this issue
https://github.com/sanjatul/Payload-Query-Preset-Admin-UI-Issue
Reproduction Steps
Steps to Reproduce
-
Open any collection List View in the Admin UI with Query Presets configured.
-
Select a Query Preset.
-
Change or add a filter value in the Filter UI drawer/controls.
-
Click the Reset option on the Query Preset or filter controls.
-
Observe: The list table updates and the browser URL (searchParams) reflects the reset state.
-
Bug: Open or inspect the Filter UI—the input fields are still displaying the modified filter values from Step 3 rather than resetting to match the URL.
-
Perform a manual browser refresh (F5 / Cmd+R) -> The Filter UI now correctly reflects the reset filter state.
Expected Behavior
The Filter UI controls should reactively subscribe to changes in the list query context / URL search parameters and update their local input states on reset without requiring a full browser page re-render.
Actual Behavior
The list table and URL state update correctly, but the Filter UI component retains its local React form state across the reset event.
Which area(s) are affected?
area: ui
Environment Info
Environement
react: 19.2.6
react-dom: 19.2.6
@payloadcms/ui Version: 3.84.1
Next.js Version: 15.4.10 (App Router)
React Version: 19.1.4
Database Adapter: @payloadcms/db-mongodb (3.84.1)
Browser: Chrome / Firefox / Edge
OS: Windows / macOS
Description
In the standard Admin UI List View, when selecting a Query Preset, modifying filter inputs, and subsequently clicking Reset, the list table re-fetches and the URL search parameters update as expected. However, the internal form state of the Filter UI (WhereBuilder) does not re-sync with the updated URL parameters. The inputs remain stuck on the previously modified values until the page is hard-reloaded.
Link to the code that reproduces this issue
https://github.com/sanjatul/Payload-Query-Preset-Admin-UI-Issue
Reproduction Steps
Steps to Reproduce
Open any collection List View in the Admin UI with Query Presets configured.
Select a Query Preset.
Change or add a filter value in the Filter UI drawer/controls.
Click the Reset option on the Query Preset or filter controls.
Observe: The list table updates and the browser URL (searchParams) reflects the reset state.
Bug: Open or inspect the Filter UI—the input fields are still displaying the modified filter values from Step 3 rather than resetting to match the URL.
Perform a manual browser refresh (F5 / Cmd+R) -> The Filter UI now correctly reflects the reset filter state.
Expected Behavior
The Filter UI controls should reactively subscribe to changes in the list query context / URL search parameters and update their local input states on reset without requiring a full browser page re-render.
Actual Behavior
The list table and URL state update correctly, but the Filter UI component retains its local React form state across the reset event.
Which area(s) are affected?
area: ui
Environment Info