Repository navigation
feat(web): /videos with inline playback, topic rail and a dark launch - #313
Merged
Merged
Conversation
…ark launch The /videos page: explainers and product demos from the YouTube channel, filtered by category and topic, each video playing in place (no per-video page, so nothing competes with the blog or guide on the same topic). Reads the code catalog plus the YouTube feed by default, or the CMS videos collection when VIDEOS_SOURCE=cms. Ships dark: lib/videos-launch.ts (VIDEOS_PAGE_PUBLIC = false) keeps the page noindex and nofollow, out of the sitemap and out of the Resources menu. Flip it on final approval. Also restores the /videos purge entries and the "Purge this page" button on the Videos admin screen that the CMS-only change leaves out until this route exists.
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
3 tasks
…r, phone filter sheet) Cards carry a colour-coded category tag, topic chips and a clearer length badge. A Quick starts row lists the explainers under two minutes. Playing a video opens a theatre band above the grid with an Up next list, so the grid no longer jumps. Phones get one Filter button that opens a sheet with category, topic and sort.
After a direct load on /videos?topic=x, router.replace('/videos') kept the old
URL, so Clear all, the category tabs and chip removal did nothing. Write the
filters with history.replaceState, which useSearchParams follows and which
needs no request for a static page.
Advisories get the blog's Next steps cards in the right column at xl, and a bottom bar below it. All three cards show at once (an advisory is too short to step through by reading depth). The advisory's technology label picks the catalog image before the text match does. Events are advisory_stacked_rail_*; the blog's names and demo link source are unchanged. StickyRail keeps the last card on screen when the rail is taller than the viewport.
Editors can place a published video from the Videos library in any body rich-text field (slash menu or Add menu). The block stores only the library id. Pages call resolveLexicalVideos after highlightLexical, since the blog body renders in a client component and cannot fetch; it fills each block and drops one whose video is gone, private or unpublished. The renderer draws a poster with a play button and loads YouTube only on click. Wired on blog, guide, advisory, news, resource and knowledge hub pages. Talks are allowed here, unlike on /videos.
…picker Advisories now use the blog's Ladder and bottom bar instead of the stacked version, so the page looks like the live blog. They carry the same two optional editor picks (ctaResource, ctaImage; hand-written, guarded migration 20261102_120000_advisories_cta_picks, checked against a Payload push). The image pick is a searchable picker over the images catalog (CatalogImagePicker, fed by GET /api/catalog-images) instead of a typed name. The automatic-pick hint under both fields and its web route now take a collection, so they work for advisories. Clicks are advisory_ladder_rail_*.
…x order matches CI
This branch was previously deployed
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.
What this is
The /videos page for the website, stacked on the CMS PR (
feat/videos-cms): this branch contains that commit first, so the diff shrinks to the web changes once the CMS PR is merged intodevelopment.ItemListofVideoObjectentries is the indexable record.videoscollection whenVIDEOS_SOURCE=cms; videos that are private, removed or not embeddable are hidden in CMS mode.Dark launch
apps/web/src/lib/videos-launch.ts(VIDEOS_PAGE_PUBLIC = false) keeps the page noindex and nofollow, out of the sitemap and out of the Resources menu. The page is reachable by URL for review. Flip the constant totrueon final approval and all three switch on together (a test pins the current state).Also in this branch
The pieces the CMS PR leaves out because they point at this route: the
/videospage-registry row, the purge map entries and the "Purge this page" button on the Videos admin screen.Checks run
Web lint, typecheck, 670 tests, production build, copy check (no dashes); CMS lint, typecheck, 2,315 tests and page-registry check on this branch. Client preview: https://cleanstart-b7y2klx4g-digibranders-projects.vercel.app/videos (earlier build of the same page).
Merging
Merging into
developmenthas no deploy effect (web deploys frommain). Promoting tomainpublishes the page dark, as above.