feat(printing/ui): Spool Print selection page UX Improvement#869
Open
akira69 wants to merge 6 commits intoDonkie:masterfrom
Open
feat(printing/ui): Spool Print selection page UX Improvement#869akira69 wants to merge 6 commits intoDonkie:masterfrom
akira69 wants to merge 6 commits intoDonkie:masterfrom
Conversation
This was referenced Feb 24, 2026
547ccd5 to
79ac130
Compare
akira69
added a commit
to akira69/Spoolman_Labels
that referenced
this pull request
Feb 26, 2026
akira69
added a commit
to akira69/Spoolman_Labels
that referenced
this pull request
Feb 26, 2026
b769f25 to
d5a8301
Compare
akira69
added a commit
to akira69/Spoolman_Labels
that referenced
this pull request
Feb 26, 2026
d5a8301 to
b3a84f9
Compare
b3a84f9 to
378ea3a
Compare
- Remove redundant matchesSearch() and visibleDataSource (server already filters via the 'search' param added in bf4f8ea) - Consolidate searchValue + serverSearchValue into single searchTerm state - Add 300ms debounce effect (avoids API call per keystroke) - Clear button sets debouncedSearch immediately for instant response - Wrap selectUnselectFiltered and handleSelectItem in useCallback - Wrap handlePageChange / handlePageSizeChange in useCallback - Add PLR0915 noqa to spool find() (statement count increased by search impl) - Consistent with filament selector optimisation pattern from PR846
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
Improves the spool pre-print selection step for larger datasets while keeping PR869 independent from the filament-printing stack.
What Changed
?search=API.LocationandLot Nrcolumns and preserved multi-color filament preview handling.savedStates-*and malformed spool table hash/localStorage state recover instead of crashing.Screenshots
New Selection Page Layout:

Simple Text Search Field:

Testing Performed
cd client && ./node_modules/.bin/eslint src/pages/printing/spoolSelectModal.tsx src/utils/saveload.ts src/pages/printing/index.tsxuv run ruff check spoolman/api/v1/spool.py spoolman/database/spool.py/bin/bash -lc "cd /Users/dfinch/Code/Spoolman_Labels/worktrees/pr869/client && npm ci && VITE_APIURL=/api/v1 npm run build"PATH=.venv/bin:$PATH SPOOLMAN_DIR_DATA=/tmp/spoolman_pr_869_data uv run uvicorn spoolman.main:app --host 0.0.0.0 --port 9869http://localhost:9869:/spool/print: visible pagination rendered, page 2 navigation worked, and the first row on page 2 was spool52/spool/print: searchingRack Alphanarrowed visible results to30andSelect/Unselect Allupdated the counter to30 spools selected/spool/print: enabling archived rows and searchingLOT-12surfaced archived spool12/spool/print: table scroll height adjusted from332pxat a620pxviewport to612pxat a900pxviewport/spool/print?spools=1&return=%2Fspool%2Fprint: selected spool1advanced into the print dialogsavedStates-selectedPresetandsavedStates-print-previewScaleno longer crash the print dialogspool-*localStorage values and bad#sorters/#filters/#paginationhash state no longer crash/spoolTest Checklist
?search=parameterLocationandLot Nrcolumns render in the selectorNotes
/spool/sw.js. That showed up during validation but is outside this PR's diff.