feat(briefing): share controls on the briefing surfaces - #6563
Draft
tomeredlich wants to merge 3 commits into
Draft
feat(briefing): share controls on the briefing surfaces#6563tomeredlich wants to merge 3 commits into
tomeredlich wants to merge 3 commits into
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
tomeredlich
force-pushed
the
claude/snapshot-briefing-preview
branch
from
September 2, 2026 15:11
6c508c3 to
f2d9d05
Compare
tomeredlich
force-pushed
the
claude/snapshot-briefing-preview
branch
from
September 3, 2026 10:10
f2d9d05 to
9dd82fc
Compare
The briefing was not missing a share control, it was hiding one: BriefPostHeaderActions wraps the cluster in `hidden laptop:block` and BriefPostContent is its only caller passing `showShareButton`, so a working copy button existed and was invisible on the widths where most briefings are read. Dropping the wrapper is the whole change there, with a share arrow beside it for the popover on desktop and the native sheet on mobile, and the settings gear moved to Tertiary so the three controls read at one weight. On the /briefing rows, #6353's pairing: copy and the arrow in one container after the CardLink with `relative z-1`, or the full-bleed overlay swallows the clicks. The text column gives way to them — `w-full` claimed the whole card and pushed the controls past its border — and rows without controls keep their original DOM. The header's kicker row never had to survive a narrow width while the actions were desktop-only, so it gains a shrink guard. `briefing_share_controls` gates all of it, default false. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Three controls inside the brief itself: - The post page's highlight bar (#6556), scoped to a body container so a selection in the header or the preferences card never raises it. - A copy icon per bullet and paragraph, carrying the text and the brief link, after #6350's copy-summary icon. Each one is labelled with what it copies, since a brief carries a column of them. - A Snapshot on the Must know heading that captures its bullets as one card, with the claim before the colon as each line. None of these can be declared in JSX: the body is a single `<Markdown content={contentHtml} />`, so briefBodyBlocks reads the blocks back out of the rendered DOM — which is also the most faithful source, being what the reader is looking at — and the controls are portalled into them. Hosts are marked and swept before each run, because Markdown re-renders on its own for hover cards and the image modal. The closing band is #6369's ShareBand with the briefing's copy, so it cannot drift from the end-of-conversation band it was asked to match. All of it sits behind `briefing_share_controls`, default false. Mockup-to-eng-pass: 1 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The briefing has four copy controls — the header, the list row, and one per body block — and all four relied on the toast alone. useSharePost was discarding useCopyPostLink's flag, so two of them had no way to know a copy had landed; it now returns isCopying, which any consumer can use. CopyStateIcon takes the glyph it rests on, so a link control keeps its link icon and still lands on the upvote arrow. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
tomeredlich
force-pushed
the
claude/snapshot-briefing-preview
branch
from
September 3, 2026 13:24
9dd82fc to
39fc6a4
Compare
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.
Stacked on
snapshot-post-page-variations(#6556). Adds share controls to the two briefing surfaces — the list at/briefingand the briefing itself — all behindbriefing_share_controls, defaultfalse.Snapshot of the briefing as an object is deliberately out. The premise behind it does not survive a read of the code: a brief is a normal post at
/posts/{slug}(BriefListItem.tsx), so a link resolves for the recipient, anduseSharePost.copyLinkalready shortens it and tags it withReferralCampaignKey.SharePost. The one image that earns its place is the Must know card, whose payload is the bullets rather than the brief.The briefing header
BriefPostHeaderActionswrapped its cluster inhidden laptop:block, andBriefPostContentis the only caller passingshowShareButton— so a working, tracked copy button existed and was invisible at the widths where most briefings are read. The wrapper is gone, a share arrow joins it for the popover on desktop and the native sheet on mobile, and the settings gear moves toTertiaryso the three read at one weight.BriefPostHeader's kicker row gains a shrink guard, since it never had to survive a narrow row while the actions were desktop-only.The
/briefingrows#6353's pairing: copy and the share arrow in one container after the
CardLinkwithrelative z-1, or the full-bleed overlay swallows the clicks. The text column dropsw-full— it claimed the whole card and pushed the controls past its border — and rows without controls keep their original DOM.Inside the briefing
ShareBandwith the briefing's copy.The body is a single
<Markdown content={contentHtml} />, so none of the three in-body controls can be declared in JSX.briefBodyBlocks.tsreads the blocks back out of the rendered DOM — also the most faithful source, being what the reader sees — and the controls are portalled into them. Hosts are marked withdata-brief-controland swept before each run, becauseMarkdownre-renders on its own for hover cards and the image modal.Notes for review
🤖 Generated with Claude Code
Copy confirmation
All four copy controls here — the header, the list row and one per body block — confirm on the button that was pressed: the icon swaps to the upvote button's filled avocado arrow and spins through
copy-confirm, the same 0.4s curve as itsspinAndScale, off underprefers-reduced-motion.Two of them had no way to know a copy had landed:
useSharePostwas discardinguseCopyPostLink's flag. It now returnsisCopying, available to every consumer.CopyStateIcontakes the glyph it rests on, so a link control keeps its link icon rather than switching to a clipboard.Review links
Features/Snapshot/Surfaces/Briefingon feat(snapshot): square share images for every daily.dev surface #6544's build: https://storybook-git-snapshot-share-images-dailydotdev.vercel.app/?path=/story/features-snapshot-surfaces-briefing--variationsPreview domain
https://claude-snapshot-briefing-preview.preview.app.daily.dev