feat(webapp): browse in place, slice 1 — the sheet's pickers open on what fits (#1243) #1318
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/1243-sheet-pickers"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Part of #1243, slice 1 of 3 (D317: sheet first, then Prep's drawer, then Find). It includes the design (lane 6h, D314–D317) from #1317, which this replaces.
Server
/sheets/{id}/pickerand/sheets/{id}/optionstake stage 3'sf_*,sort,page,per_pageandall=1.fits: what fits the character at that step (D314);fits_label;filtersandsorts, counted against the selection;total.fitsis declared as data in each system'sbrowse.json, using a documented vocabulary of facts (docs/CONTENT-PACKS.md):/optionsnow always answers an object,{results, fits, …}, instead of a bare list. Its only caller is LevelUp, which is updated.eligible: falseand awhy. Preview and apply still refuse them; a test proves it (Sudden Charge for a rogue gives "A fighter feat." and a 422).Screen
fitFilters.jsx, shared by Add to the sheet and level-up's feat step (5e's improvement-or-feat step too):fits, and asks again with it, so the counts and the total agree;Checked
src/pages/sheet,wiki,uiandHome: 1116 passed.New wording goes on the Wording Review page before this merges.
🤖 Generated with Claude Code
Render check, first pass
It ran on the journeys stack, both starters loaded, with a level-1 PF2e fighter made through Start a character. Every page returned 200 with 0 console errors. Axe was clean, and there was no overflow on a phone.
Found: no filter row anywhere.
/pickerand/optionssendfiltersas a list withsortsbeside it, while the screen read only/reference/filters's nested{filters, sorts}shape. So the row, its counts, the phone fold and the Price filter were all silently empty. The unit tests mocked the nested shape, which is why they passed.Fixed in
fc1249e0: the row reads both shapes, and a new test uses the routes' own shape. Sheet tests: 274 passed; lint has 0 errors.Still being checked, in a second render pass:
Working as intended:
f_*, the second hasf_level=..1, and "Show every one" sendsall=1.Render check, second pass, and two fixes
Second pass (
fc1249e0):Fixed after it:
pending, and both pickers say "Searching…" until their first answer arrives.Checks:
test_sheets_pickers_fitplustest_sheets_levelupgave 45 passed, including a new zero-gold test.src/pages/sheetandsrc/ui/Pickergave 280 passed and 2 failed; both failures were 15-second timeouts at a load average of 33, in files this change doesn't touch.CI decides. The owner approved the wording (part n) on 2 Nov, so this merges when CI is green.