feat(ui/filters): searchable filter dropdown + bulk selection + query responsiveness - #862
Closed
akira69 wants to merge 7 commits into
Closed
feat(ui/filters): searchable filter dropdown + bulk selection + query responsiveness#862akira69 wants to merge 7 commits into
akira69 wants to merge 7 commits into
Conversation
akira69
force-pushed
the
feat/ui-filter-search-upstream-split
branch
from
February 24, 2026 06:08
3691d11 to
870e01e
Compare
This was referenced Feb 24, 2026
akira69
force-pushed
the
feat/ui-filter-search-upstream-split
branch
from
February 24, 2026 06:44
870e01e to
62ea1c8
Compare
This was referenced Feb 24, 2026
akira69
force-pushed
the
feat/ui-filter-search-upstream-split
branch
from
February 25, 2026 00:58
62ea1c8 to
3d5c031
Compare
akira69
marked this pull request as ready for review
February 25, 2026 14:53
akira69
force-pushed
the
feat/ui-filter-search-upstream-split
branch
from
February 25, 2026 15:19
3d5c031 to
6401376
Compare
akira69
marked this pull request as draft
February 26, 2026 16:47
akira69
marked this pull request as ready for review
February 26, 2026 17:12
9 tasks
akira69
marked this pull request as draft
February 27, 2026 20:50
…tterns - Wrapped selectAllFiltered and selectNoneFiltered in useCallback to prevent unnecessary Button re-renders - Created useSimpleSortedArrayQuery factory function to eliminate duplicate fetch-and-sort patterns - Consolidated 5 repeated fetch hooks (Materials, ArticleNumbers, LotNumbers, Locations) into factory calls - Improved error messages to include endpoint names for better debugging - All code quality checks pass: ESLint ✓, Prettier ✓
11 tasks
Owner
|
Thank you for your contribution, but a new client has been made from scratch, and there is no point in updating the old client any longer (it will be removed soon). |
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
This PR makes the filament and spool list filters easier to use on larger datasets:
Select All,Select None, andClearfor the visible filter optionsReview cleanup also carried forward the PR861 malformed-saved-state hardening into
useSavedState, and removed split contamination that did not belong in this PR (spoolman/import_externaldb.pyand a strayspool_countlocale entry).What Changed
/filament-nameso the UI can populate filament-name filters without fetching full filament rows.useSavedStateparsing so malformed persisted state falls back to defaults and self-heals on reload.Database Impact
b76f1b4c3f5a(filament/vendor search indexes)f1a3d9c2c4e1(spool search indexes)Testing Performed
cd client && ./node_modules/.bin/eslint src/components/column.tsx src/components/otherModels.tsx src/utils/filtering.ts src/utils/saveload.tscd client && ./node_modules/.bin/prettier --check src/components/column.tsx src/components/otherModels.tsx src/utils/filtering.ts src/utils/saveload.ts public/locales/en/common.jsonuv run ruff check spoolman/api/v1/filament.py spoolman/api/v1/other.py spoolman/api/v1/spool.py spoolman/database/filament.py spoolman/database/spool.py spoolman/database/utils.py migrations/versions/2026_02_11_1700-b76f1b4c3f5a_filament_search_indexes.py migrations/versions/2026_02_11_1710-f1a3d9c2c4e1_spool_search_indexes.pycd client && npm ci && VITE_APIURL=/api/v1 npm run buildcd /Users/dfinch/Code/Spoolman_Labels/worktrees/pr862 && PATH=.venv/bin:$PATH SPOOLMAN_DIR_DATA=/tmp/spoolman_pr_862_data uv run uvicorn spoolman.main:app --host 0.0.0.0 --port 9862http://localhost:9862Select Allfilters the table to the visible searched optionSelect Noneremoves the searched selection and restores the full row setSelect AllClearSelect AllsavedStates-spoolList-showArchivedlocalStorage and verified the spool page still loaded and the saved state healed back tofalseb76f1b4c3f5af1a3d9c2c4e1Test Checklist
Select Allchecks all currently visible options and filters the filament list accordinglySelect Noneunchecks the currently visible searched option and restores the full filament row setClearremoves the selected material filter values and restores the full filament row setsavedStates-spoolList-showArchivedstate recovers without blanking the pageVITE_APIURL=/api/v1