feat(shows): rework external show detail into Episode dashboard#165
Merged
Conversation
Return prerecorded_key, prerecorded_filename, prerecorded_confirmed_at and a presigned prerecorded_url from api_show_detail so the admin UI can show whether an external/brunchtime show is in live or upload mode.
Rework the external/brunchtime show detail page into a clean section layout (editable title, compact status/type, date, description, cover, social media with AI bio + Instagram/Telegram, read-only media live/upload status). UNHEARD shows are unchanged. Add ShowMediaSection component; enable the Instagram preview modals for all show types.
Open the show detail page to hosts (router + api_show_detail auth) and add a require_show_editor guard so the assigned host can update title/date/description and the cover of shows they host; delete and host/artist assignment stay admin-only. My Shows and All Shows cards in the host flow now open /shows/:id, with a dedicated streaming button preserved on My Shows cards.
Rework the external/brunchtime show detail page to match the Episode-overview dashboard: deadline-countdown banner, cover/title/description hero, and an air-date / assigned-host / media-type / social-channels grid. Media controls (Live/Upload toggle, upload, mark uploaded) reuse the existing /api/my-show endpoints and are active only for the assigned host. Adds ShowDeadlineBanner, ShowMediaCard and ShowSocialChannels; removes the superseded ShowMediaSection.
Remove the inline drag-and-drop uploader from the media card. The Live and Upload buttons now hand off to the existing host streaming user stories (/stream/live and /stream/upload) for the assigned host via useHostFlow, instead of uploading on the detail page. The card keeps a read-only file/status view and the Mark uploaded action.
On the show dashboard's media card, the Live/Upload tiles now only set the selected media type; a contextual 'Go live' / 'Upload show' button enters the chosen user story. Remove the manual 'Mark uploaded' button (status is detected automatically) and add horizontal padding to the detail page. Since the media type is decided on the dashboard, drop the standalone mode-selection step: remove FlowSelectMode and the /stream/mode route/progress step, and route the flow's back/revert/entry actions (and the My Shows 'Prepare to stream' button) to the show detail page instead. Note: the format-on-save hook normalized some pre-existing formatting in the touched flow components.
…nner - Outside edit mode the external dashboard is read-only except media type and cover image, which stay editable. - In edit mode, host reassignment and the Delete Show action (admin only, at the bottom) become available; delete removes only the show, not its template. - Show the deadline countdown banner for Live shows too (counts down to air), not just upload mode. - Add more horizontal padding to the detail page.
Merge admin host (re)assignment into the dashboard ASSIGNED HOST tile (edit mode only); remove the redundant bottom assignment card. Hide the step progress bar on the show-select page — it keyed off currentStep (derived from show state) and showed even on /stream/select.
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.
Reworks the external/brunchtime show detail page (issue #160) into a "SHOW DASHBOARD / Episode overview" layout, and opens it to hosts with ownership-based authorization. UNHEARD detail page is untouched.
Highlights
require_show_editor) and frontend.hostFlowApi); the mode-selection step is removed (chosen on the dashboard now).Backend
api_show_detailnow authenticates only (admin-only data gated byviewer_is_admin); exposesprerecorded_*fields + presigned URL.api_update_show/api_upload_show_coveruserequire_show_editor(admin or owning host); non-admins can't change show_type/ai_bio. Delete stays admin-only.Verification
npm run build,npm run lint,npm test,npx prettier --checkall green.