Skip to content

feat(revamp): Block E — Programs section on ProjectDetailsPage (closes #45)#56

Draft
sacha-l wants to merge 1 commit intorevamp/block-d-program-applicationsfrom
revamp/block-e-programs-on-project-detail
Draft

feat(revamp): Block E — Programs section on ProjectDetailsPage (closes #45)#56
sacha-l wants to merge 1 commit intorevamp/block-d-program-applicationsfrom
revamp/block-e-programs-on-project-detail

Conversation

@sacha-l
Copy link
Copy Markdown
Collaborator

@sacha-l sacha-l commented Apr 22, 2026

Block E of the Phase 1 revamp — single-issue block. Shows on a project's Overview which programs it has applied to, with status.

Stacked on #55 (Block D). Target base is revamp/block-d-program-applications while that PR is open. Once #55 merges, I'll rebase this branch onto develop and retarget the PR.

Closes #45.

Block E journey slice (per spec §12)

"My project page shows where I've applied." Navigate to /m2-program/plata-mia-15ac43 → Overview tab shows a Programs section listing "Dogfooding 2026 → submitted" with a real anchor link to /programs/dogfooding-2026-berlin.

End of Block E = full preview journey lights up

Once this lands (and #53 / #54 which landed alongside), the mock-mode preview renders Plata Mia's complete Phase 1 journey end-to-end:

  • /programs/dogfooding-2026-berlin — the Dogfooding program (Block A)
  • /m2-program/plata-mia-15ac43:
    • Updates tab with two seeded updates (Block B)
    • Funding signal badge on Overview (Block C)
    • Programs section on Overview linking back to Dogfooding (this PR)

Commit

#45: Programs section

  • client/src/components/project/ProjectProgramsSection.tsx (new) — fetches api.getApplicationsForProject(projectId) and api.listPrograms() in parallel, joins on programId, renders a small list card with program name (real <Link> anchor, inherits right-click-open-in-new-tab for free) and a status badge.
  • client/src/pages/ProjectDetailsPage.tsx — mounts the section at the top of the Overview tab, above Final Deliverables.

Empty state

The spec said "section hidden OR a minimal 'No program applications yet' line". I picked hidden to avoid dead space on every project that isn't applying to anything. Easy to flip later if the team prefers the line.

Test plan

Automated:

  • cd client && npm run build → clean.
  • No server changes → server tests unaffected.

Playwright (auto-verifiable in mock mode):

  • On /m2-program/plata-mia-15ac43, the Overview tab shows a "Programs" card with "Dogfooding 2026" and a "submitted" badge.
  • Clicking the "Dogfooding 2026" link navigates to /programs/dogfooding-2026-berlin.
  • On /m2-program/plata-mia-15ac43, right-click → Open Link in New Tab on "Dogfooding 2026" works (anchor semantics).
  • On /m2-program/<a-project-with-no-applications>, the Overview tab has no Programs section.

Out of scope

  • Withdrawing an application from the project side (Phase 2+).
  • Per-program-type rendering of applicationFields on this list (it's a summary list; the Apply modal is where fields are entered).

Block E (single-issue). On a project's Overview tab, show which
programs it has applied to, with status. Links are real anchors so
right-click-open-in-new-tab works.

Phase 1 revamp Block E, issue #45.
See docs/stadium-revamp-phase-1-spec.md §5 Issue 10.

Client:
- client/src/components/project/ProjectProgramsSection.tsx (new) —
  fetches applications + all programs in parallel, joins on
  programId, renders a minimal list with program name (real anchor)
  and a status badge.
- client/src/pages/ProjectDetailsPage.tsx — mounts the section at the
  top of the Overview tab, above Final Deliverables.

Empty state: section hidden entirely when the project has no
applications (spec: "section hidden OR a minimal empty-state line").
Chose hidden to avoid dead space on projects that aren't applying.

End of Block E also means preview mode now renders Plata Mia's full
Phase 1 journey end-to-end:
- Dogfooding program at /programs/dogfooding-2026-berlin
- Her project at /m2-program/plata-mia-15ac43 with:
  * Updates tab showing two updates (from #40)
  * Funding signal badge on Overview (from #42)
  * Programs section on Overview linking to Dogfooding (this commit)

Verification:
- client/npm run build: clean.
- No server changes in this commit — the GET endpoint landed in #43
  (Block D).
@sacha-l sacha-l added enhancement New feature or request revamp-phase-1 Stadium Phase 1 revamp — programs, updates, funding signals, applications labels Apr 22, 2026
@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 22, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
stadium Ready Ready Preview, Comment Apr 22, 2026 9:59pm

@sacha-l sacha-l added enhancement New feature or request revamp-phase-1 Stadium Phase 1 revamp — programs, updates, funding signals, applications labels Apr 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request revamp-phase-1 Stadium Phase 1 revamp — programs, updates, funding signals, applications

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant