Render on phones, carry the seller's comment, and refresh to 33 sales #5
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "chore/celilo-4-bumps"
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?
Problem
The map had no mobile version. The phone shell — fixed chrome, one scrolling
region, a docked card, the map/list toggle — was all written and none of it
ever ran: the page carried no
<meta name="viewport">, so phones laid it outat ~980px and scaled down, and
@media(max-width:820px)never matched.Three other things surfaced while fixing it:
bun run convert-csvdefaulted to a local CSV export whose newest responsewas a year old, and it overwrote
site/data/sales.json,yard-sale-info.jsonand the fleet-is-down snippet with no guard. A source that answers with
something other than the sheet parses to zero rows rather than to an error,
so a bad run would have blanked the map and the contingency together.
designator, a misspelled street, and one written as an intersection.
Solution
The page renders on phones. Adds the viewport meta, plus the doctype and
charset — without a doctype the
100svhapp-shell sizing runs in quirks mode.The build now refuses a page with no viewport meta, beside the existing
<title>check.The lede is gone, along with the helpers only it used (
spell,cap,bareStreet, the two address regexes). A failed load still reports throughsay()and through the empty-list line. The page is 2.8KB smaller.The seller's comment reaches the map. Optional at every step:
findOptionalColumnreturns null for a source that predates the column, thefield is omitted when the seller left it blank, and both the page and the
snippet render it only when present. Capped at 500 characters and set as text,
like every other seller-typed field —
build.ts's XSS guard now covers it, soa refactor to
innerHTMLfor the note fails the build.The published sheet is the default source, and
assertNotEmptyrefuses towrite when a run produced nothing.
bun run devservessite/dist. Worth a note for whoever reads this next:bun site/dist/index.htmllooks like it would do this and does not — it is abundler dev server with SPA fallback, so it answers
sales.jsonwithindex.html, and the page then reports that the sales could not be loaded.Verification
bun run check— 62 pass, 0 fail. Three new tests cover the optional-columnbranches, two cover the empty-write guard.
celilo module check .— 8 ok, 0 warn, 0 fail.throwaway directory: comment carried, whitespace trimmed, omitted when blank.
confirming the build refused.
Data
33 sales, 11 with notes, nothing dropped — the four bad addresses were
corrected at the source.
3612 North Kerby Avenueand3612 N Kerbystillshare a point and are both on the map; they list different goods.
Not included
Comments are not searchable and do not feed the category chips —
matches()still reads address and goods only. Deliberate: a stray word in a note would
otherwise pull a sale into an unrelated category.
🤖 Generated with Claude Code