Start with the records an action will affect
One useful detail in the FieldLens update is the count on the export button. With no selection, CSV and report actions use all matching records. With a selection, they use the selected records within the current filter. The button changes to “Export selected CSV (2)”, making its scope visible.
This is a product decision for export. For deletion, notifications or bulk approval, applying an action to every result when nothing is selected would usually be inappropriate. Reusing a table therefore requires another decision about action scope.
Pagination changes the visible rows
FieldLens stores selected record IDs in a Set and keeps them when changing pages. “Select this page” affects only visible rows. Refreshing the filter removes selected IDs that no longer match. Selection crosses pages but stays within the active filter.
The following excerpt resolves the action scope. Before it runs, refresh has removed selections outside the filter. Copying this line without that cleanup could leave the count, button label and exported records inconsistent.
const actionRecords = () =>
filtered().filter((r) => !selected.size || selected.has(r.id));Reset or clamp the page when results change
The archive list combines status, category and keyword filters, sorts the result, then takes a page of twelve records. Filter or sort changes reset the page to one. A change in result count clamps it to the remaining page range. These handle different situations.
Searching for one file from page three may leave a single result. Keeping page three would display an empty list. Removing the last item on the final page creates a similar problem. Filter and page state are worth checking when an existing file seems to disappear.
Keep search and details close to the current task
The archive demo opens a details drawer from the filename, including remarks and rejection reasons. Ctrl / ⌘ + K searches features and local files, and arrow keys move through results. A visible search button also gives phone users access.
Quick Find returns a limited set of matches, so it is not a complete inventory. Use the archive list and its combined filters for a full review. Public-demo files and review changes stay in the visitor’s browser; collaboration needs a separate service.
Checks to run through next
These interfaces are most revealing when actions are combined. The following checks compare the displayed scope with the records actually affected.
- Select one record on each of two pages, export them, and compare IDs with the button count and report scope.
- Change a filter so one selected record no longer matches, then check selection cleanup and the count.
- Search from a later page, reset after an empty result, and remove the last item on the final page.
- Open and close details and repeat a search at phone width and with a keyboard, checking focus and the active conditions.
About this example
Compiled on 10 November 2026 from FieldLens commit 9bb00ac and college-archive-demo commit cca79fe. The public demos use preset data. The final section proposes checks rather than claiming a complete regression run for both projects.
Sources & further reading
Drafting and translation assisted by AI. See the sources and example scope above.