Skip to content

Solves feature request to call out moderators on a panel - #27

Merged
shrinkray merged 4 commits into
mainfrom
panelFix
Jun 18, 2026
Merged

shrinkray merged 4 commits into
mainfrom
panelFix

Conversation

@shrinkray

Copy link
Copy Markdown
Contributor

Pull Request

Description

Fixes #25

  • new toggle added to Sanity
  • new layout wrapping moderators to second line

- add a toggle to indicate if a speaker is also a moderator
- fix prelint errors
- panelist avatars on first row
- moderator on second
@vercel

vercel Bot commented Jun 18, 2026 •

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
pridemi26 Ready Ready Preview, Comment Jun 18, 2026 9:44pm

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds first-class “moderator” support for panel sessions by propagating an isModerator flag from Sanity through the data pipeline and updating the UI to visually separate moderators from panelists on session cards and speaker details.

Changes:

  • Adds isModerator to Sanity session participants (schema + import script) and includes it in the Sanity fetch query.
  • Updates session aggregation + SessionCard to render a moderator split (moderators on a separate line with distinct avatar styling / credits).
  • Extends generated speaker/session JSON to include participant metadata (isModerator, sortOrder, and derived participant lists).

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
studio/schemaTypes/session.ts Adds isModerator boolean to session participants and updates participant preview to label moderators.
src/layouts/SessionsSection.jsx Switches combined session aggregation to build/sort participants instead of separate speaker name/avatar arrays.
src/data/2026/speakers.generated.json Regenerates data to include isModerator, sortOrder, and session.participants (+ derived speaker/moderator/panelist lists).
src/components/speakers/SpeakersContent.jsx Passes sessionParticipants through to speaker card/details.
src/components/speakers/SpeakerDetails.jsx Displays participants with moderator labeling (fallbacks to sessionSpeakers when needed).
src/components/speakers/SpeakerCard.jsx Wires sessionParticipants prop through to SpeakerDetails.
src/components/sessions/SessionCard.jsx Replaces speakers/speakerAvatars with participants, adds moderator split layout + credits.
scripts/sanity-import/import-speakers.mjs Imports is_moderator from the sheet into session participant objects.
scripts/fetch-event-data.mjs Fetches isModerator from Sanity participants and enriches rows with derived participant lists.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread scripts/fetch-event-data.mjs Outdated
Comment on lines +133 to +143
function enrichSessionParticipants(rows) {
const bySessionTitle = new Map()

for (const row of rows) {
const title = row.session.title
if (!bySessionTitle.has(title)) bySessionTitle.set(title, [])
bySessionTitle.get(title).push(row)
}

for (const row of rows) {
const group = bySessionTitle.get(row.session.title) ?? [row]
- prevents participants from two distinct sessions
- where sessions share a title from being incorrectly merged
- then sessionId is set on every row
@shrinkray
shrinkray merged commit 463cd49 into main Jun 18, 2026
5 checks passed
@shrinkray
shrinkray deleted the panelFix branch June 18, 2026 21:47

This branch was successfully deployed

1 active deployment
Preview — 7f5bb50a Deployed Jun 18, 2026 by vercel[bot]
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.

[FEATURE] Call out Panel Moderators

2 participants