Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Land new drafts on a "Check your signup, then share it" page

Aperta
#502 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

  • #528 di @richshaw — chiusa senza merge

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
25/100
Tipo di issue
Funzionalità
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
typescript

Direzione di ricerca

Start with the /app/signups/[id] route, MagicComposeRoot.tsx, and src/mcp/links.ts; read the existing banner and card components, then inspect groupByFieldRefs and renderFieldValue. Add pure helpers under src/lib/ with unit tests, and update create-and-publish-a-signup plus the changelog. Done means all draft entry points reach the review page, empty drafts still open the builder, and the listed budget, lint, typecheck, knip, unit, and end-to-end checks pass.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

enhancement pipeline:ux

Needs your OK: this is the biggest change in #498. Drafts open on a new review page instead of the Build tab. Swap pipeline:proposed for pipeline:ready to have it built.

Why

New organizers mostly stop before publishing, in their first session, and often right after the draft appears. Today they land in the Build tab:

  • a hand-built signup shows one empty "Set what" row and no next step;
  • an AI draft shows a long list.

This page asks them to check three things, then publish.

Design: canvas https://claude.ai/artifact/RqcjzCcdSTw5JhbXjm2x5y, row C, artboard "C · Check and publish: an AI draft with two problems". It's clickable. The canvas is private until shared.

What the page shows

  • Name and description, with Change. Change opens inline inputs with Save and Cancel.
  • What people sign up for:
    • A headline in fixed words, such as "12 slots · 3 days · 3 people each". It never borrows a word from a field label, so it reads correctly whatever language the organizer wrote in.
    • The slots exactly as the public page lists them, using the same groupByFieldRefs grouping and the same renderFieldValue. The list is folded to the first group or six rows, with "Show all N".
    • A value every slot shares is said once. For example, "Same on every slot: 9:00 am", instead of repeating it on every row.
    • This issue has no editing on this card. The problem checks and fixes are the next issue in #498, and editing slots is the one after.
  • What happens when someone signs up: requireEmail and sendReminders, with Change.
  • Actions:
    • "Publish and get the link";
    • "Edit everything in the builder";
    • "Preview the page";
    • "Not yet. Email me a link to finish later". Wire this up in the draft-email issue in #498; until then, leave it out.

Routing

  • /app/signups/[id] redirects to /build today. For a draft with at least one filled-in slot, render the review page instead. Otherwise keep the redirect. A draft with nothing in it needs the builder, not a checklist telling the organizer to delete their half-made slot.
  • Magic Compose pushes to /build?aiDraft=1 in MagicComposeRoot.tsx. Push to the review page instead, and show the AI-draft warnings on the card they're about.
  • Manual create already redirects to /app/signups/[id].
  • The AI connector's links.edit in src/mcp/links.ts points at the Build page. For drafts, point it at the review page or add a review link. Decide which here; it touches the tool description and links.test.ts.
  • Published signups open as they do today.

Watch for

  • JS budget. /app/signups/[id] has a 124 KB entry because it's a redirect today. Render the headline, list and fold on the server; only the Change forms should be client islands. Set the budget deliberately.
  • Tests. Put the headline and fold helpers in src/lib/ as pure functions with unit tests (the TDD rule).
  • Session check. The page calls requireOrganizerSession itself, as every organizer page does.
  • Help. create-and-publish-a-signup walks through landing in the builder. Rewrite it, and update its UI list, walkthrough and screenshots (help-pages skill).
  • Reuse. Use the existing banner and card components rather than new one-offs.
  • Phone. One column that works at 390px wide.
  • CHANGELOG: add a line.

Done when

  • A draft with content opens on the review page from every entry point: Magic Compose, manual create, the dashboard and the connector link.
  • An empty draft opens in the builder.
  • The headline and fold are unit-tested, including signups with unlimited spots and signups that aren't grouped.
  • pnpm budgets passes with the new page's entry.
  • pnpm lint && pnpm typecheck && pnpm knip && pnpm test pass, and the e2e flow for create-and-publish passes.

Planned in https://claude.ai/code/session_01AkZbMUc4ej4ed7o5uh6nqr

Lingua principale
TypeScript
Stelle
19
Fork
4
Merge medio
22h 10m
PR unite (30g)
168

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di richshaw/OpenSignup

Tutte le issue di richshaw/OpenSignup

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.