Skip to content

feat(agenda): close agenda building once the conference is over - #212

Merged
JakeGinnivan merged 1 commit into
mainfrom
jakeginnivan/build-my-agenda-turn-off
Oct 28, 2026
Merged

JakeGinnivan merged 1 commit into
mainfrom
jakeginnivan/build-my-agenda-turn-off

Conversation

@JakeGinnivan

Copy link
Copy Markdown
Contributor

Summary

Building an agenda closes once the conference is over. People who already picked talks keep their link to /agenda/my; everyone else stops seeing it.

 agenda loader (current year, published, Sessionize)
-  canPick = published && current year
+  hasMyAgenda    = published && current year
+  canPick        = hasMyAgenda && conferenceState !== 'conference-over'
+  myAgendaClosed = hasMyAgenda && !canPick

 <Agenda>
-  {canPick && <MyAgendaLink />}
+  {(canPick || (myAgendaClosed && picked.length > 0)) && <MyAgendaLink />}
   <TalkCard pickable={canPick ? talk : undefined} />   // + buttons gone after the day
Before the day / on the day After the day Previous years
+ buttons ✅ — —
"My agenda" link ✅ only if this browser has picks —

/agenda/my still lists existing picks and exports the .ics. Its empty state after the conference now says the conference is over instead of telling people to use a + button that no longer exists.

Evidence

New e2e cases in e2e/my-agenda.spec.ts. They set the date override to 2026-10-10, a week after the fixture conference:

after the conference
  ✓ the agenda offers no picker, and no link when nothing was picked
  ✓ someone who built an agenda can still get to it        // pick on 2026-09-01, reload on 2026-10-10 → "My agenda (1)"
  ✓ the personal agenda says it is over when nothing was picked
  • Before: after the conference, the + buttons and the "My agenda" link still showed for everyone.
  • After: my-agenda.spec.ts + date-states.spec.ts, chromium and chromium-light: 34 passed.

Merge Danger

Door: two-way

Only a loader flag and conditional rendering change. Picks in localStorage aren't touched, so reverting brings everything back as it was.

Blast Radius: small

It only affects the current year's /agenda and /agenda/my once the conference-over state starts, which is the day after the conference. /api/agenda/shortlist is unchanged and still accepts POSTs after the conference, but the UI no longer sends any adds.

Picking talks stops the day after the conference. The My agenda link stays
for anyone who picked talks in this browser and is hidden for everyone
else, and /agenda/my says the conference is over instead of pointing at a
+ button that no longer exists.
@JakeGinnivan
JakeGinnivan merged commit 7fdbd3b into main Oct 28, 2026
3 checks passed
@JakeGinnivan
JakeGinnivan deleted the jakeginnivan/build-my-agenda-turn-off branch October 28, 2026 01:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant