Lane 1, Home: Needs you, the campaign cards, New campaign as a page, Join, the put-away fold, and J1/J2 (#727) #749
Loading…
Reference in a new issue
No description provided.
Delete branch "build/lane1-home"
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?
Lane 1's Home PR (#727, series item 4: HOME-1 to HOME-4). Home replaces the dashboard; New campaign is a page; Join stays on Home; archived and binned campaigns fold at the foot. J1 and J2 are filled in as far as Home carries them and pass in all three projects.
Home (
/dashboard, the path kept): Needs you from/api/me/attention, one row per thing with a button that is a link to where it is done, a session being played at the top, absent entirely when empty, and a banner with Try again when it could not load while the campaigns carry on. One star, one wish (IS-213) as a card between Needs you and the campaigns, asked once the day after a session, with Send and "Not this time". The campaign cards from a newGET /api/me/homeaggregate (six queries whatever the campaign count): This week (the next session in the campaign's time zone with a live countdown, or "being played now · Join the table", or "voting on a time, 4 options", or "Nothing scheduled yet"), Last time with the recap's first sentence (J6's line), Open and "Read the last recap" only when there is one, and for a fresh campaign "Schedule the first session" and "Invite players". Join in place with the four outcomes. The fold: "1 archived · 1 in the bin", dimmed archived cards with Un-archive where it can work, the bin as a list with "gone for good in 5 days, 3 hours" or "waiting for the next clear-out", Restore for the owner and the owner's name for everyone else, absent when both are empty and open when nothing is on the go.New campaign (
/campaigns/new): opens on the four choices (from nothing, from a template, a one-shot, import a file), then the form for the choice: the game picker rebuilt on the library (registry, "Something else — I will type it", "Rules linked" when a system is chosen, the two empty and loading states), the three templates, the one-shot's "When, roughly", import disabled until a file is chosen and its success panel with the claimed-member count. Created lands on Home with the new card first and the "New" chip. The hosted slot line (IS-376) waits for HOME-7 and #642's provider.Three components added to the library, each with states on
/designand a test:CampCard/CampGrid,Choices(the kit's radios-with-reasons, which lane 3 reuses), andForm/FormTwo/FormActions.Three defects the journeys found in the shell, fixed here: the countdown and "Join the table" were links in a sentence with no underline at 2.23:1 (
link-in-text-block), nowlinkishas the prototype drew them; the bell counted twelve kinds but drew eight, so it said "2 unread" over "Nothing needs you" for most of what the product sends; and the bell's "Notification settings" link sat at 1.07:1 because the bar's link colour reached into the popover (the same shape as #745, in the places a colour is set rather than inherited).Deliberate departures from the drawing, both in comments: Join's "That code has expired" is not built, because the server gives one message for unknown, revoked, expired and used-up codes on purpose (#643: refusals do not leak); the banner reads "That link is no longer valid" / "Ask the GM for a new link." And "Read the last recap" is offered only when there is a recap; a session played yesterday with no summary yet says "no recap yet" instead of opening an empty page.
Not built, each named in a comment: IS-195 (the ownership-offer row on Home) wants a row on
/api/me/attentionfirst, since the offer is readable only one campaign at a time; IS-152 (Discussions kinds) is lanes 7 and 8.For the owner: Needs you rows say the time in the reader's zone (the attention API carries none) while the card says it in the campaign's; a zone on the attention response would settle it. And the sign-in rate limit (10 a minute per IP) is shared by every test in the container, so the fixture waits it out rather than the product bending for tests; a journey costs three sign-ins.
Coverage: 42 of the 45 drawn/replaced placements on HOME-1 to HOME-4 (
lane1b.py), the three above excepted. Tests: frontend 1,200 (Home 31, New campaign 19, the three components 13, the frame 3 more); backendtests/test_home.py25; journeys 18 passed in the three projects,/dashboardand/campaigns/newclean under the strict axe gate,/loginthe only tolerated entry left. Lint, ruff and the build clean. Render-checked from the running e2e stack against the prototype's stills.🤖 Generated with Claude Code