[Teams] Team demo videos + /admin/teams polish#292
Merged
Conversation
Adds support for a per-team `demo_video_url` across the public event pages, the results page, the hacker-facing /manageteam form, and the /admin/teams console — paired with a focused round of admin UX polish that materially helps during demo/judging day. Public surfaces (CWV-safe — no eager iframes): - TeamList (`/hack/[event_id]`) renders a LiteVideoThumbnail per card (lazy YouTube hqdefault.jpg only). Click opens a single page-level Dialog with the existing VideoDisplay component. Per-card iframes were rejected — 30+ embeds would trash LCP/CLS. - HackathonResults (`/results`) embeds inline (only 3-5 winner cards; iframe now has loading="lazy"). Hacker self-serve: TeamStatusPanel has a new Demo Video section beside the existing DevPost section, posts to the new backend endpoint, and shows a live LiteVideoThumbnail preview. Admin (`/admin/teams`): - New Demo Video column with inline-edit Popover (TeamFieldPopover) — paste a URL, see live preview, save without opening the full Dialog. - Filter chips above the table: All / Winning / In review / Active / Missing DevPost / Missing Video. Pure client-side. - New Demo Video URL TextField in the edit Dialog with provider validation and preview. - Extracted `patchTeam(partial)` so the Dialog save and Popover quick- edits share one PATCH path. Shared component: `LiteVideoThumbnail` extracts YouTube IDs with the same regex VideoDisplay uses, falls back to a generic dark "Watch demo" tile for Vimeo/Loom/Drive/unknown providers, always uses an explicit width/height and loading="lazy" per the CWV rules. Pairs with backend PR opportunity-hack/backend-ohack.dev#217, which adds `demo_video_url` to `edit_team()` and the `POST /api/team/<teamid>/demo-video` self-serve endpoint. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Contributor
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a per-team demo video (YouTube / Vimeo / Loom / Google Drive) across the public event pages, the results page, the hacker-facing `/manageteam` form, and the `/admin/teams` console — paired with a focused round of admin UX polish that materially helps during demo/judging day.
Pairs with backend PR opportunity-hack/backend-ohack.dev#217, which adds `demo_video_url` to `edit_team()` and the `POST /api/team//demo-video` self-serve endpoint.
What changed
Public surfaces (CWV-safe — no eager iframes)
Hacker self-serve (`/hack/[event_id]/manageteam`)
Admin (`/admin/teams`) — scoped polish, not a redesign
Shared component
Why
Reviewer notes
Test plan
🤖 Generated with Claude Code