feat(dashboard): add the latest finding ticker to the panel - #2124
feat(dashboard): add the latest finding ticker to the panel#2124brunod-e wants to merge 7 commits into
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
1 Skipped Deployment
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6f275fea24
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
🎨 UI Review
Latest Finding TickerDesktop
Validated against Figma — no change needed
MobileNo dedicated mobile Figma frame was provided. The row stacks ( Generated by Claude Code |
🎨 UI Review
Latest Finding ticker
Validated — no change needed
Findings: 2 total — 0 must-fix, 2 nice-to-have (one worth a quick author confirmation) Generated by Claude Code |
🎨 UI Review
Panel — Latest Finding tickerValidated against Figma — no change needed
Question for author
Generated by Claude Code |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c54f5815e5
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
A one-line strip between the hero and the Monitored DAOs table: the LATEST FINDING label, the finding sentence, and a link out to the case write-up. The sentence and its URL come from a mock for now — swapping in a fetch of the newest Paragraph publication only has to replace the two fields the ticker reads. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Same one-step-off letter-spacing as the hero card title: `tracking-wider` resolves to a fixed 0.72px, which is the 12px value, not the 0.78px the 13px Alternative/Small style calls for. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The ticker shipped a hardcoded finding pointing at the publication index, so "Read the case" never opened the post it described. Paragraph exposes no JSON API for a blog's posts, so the newest publication now comes off the public RSS feed, revalidated hourly, falling back to the publication index whenever the feed is unreachable. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The homepage awaits this ticker while it renders, so the feed sits on the critical path of the whole page. The fallback only covers a request that fails; a host that accepts the connection and then goes quiet would hold the render open until the transport itself gave up, which can be minutes. Three seconds is the cap, after which the publication index ships instead. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Figma draws the label, the finding and the link on a single row, and the mock was measured against a short test string. Real feed titles are longer than that, and the sentence would push the row onto a second line next to the link. It ellipsizes on desktop now and still wraps on mobile, where the link already sits on its own line. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…eset The changeset still said the finding sentence was mocked pending a Paragraph integration, but the same diff ships `getLatestParagraphPost()` reading the publication's RSS feed server-side with a timeout and a publication-index fallback. Changesets copies this text verbatim into the published CHANGELOG, so leaving it would ship a release note telling readers the feature is a placeholder when it is already live. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
605e954 to
4b31090
Compare
|
Superseded by #2137, which combines the whole panel v2.1 stack into a single PR against dev. |
Part 2/6 of the Panel v2.1 stack (DEV-1148). Base:
feat/panel-v2.1-hero(#2123).What changes
Section 2 of the spec — a one-line strip between the hero and the Monitored DAOs table: the
LATEST FINDINGlabel, the finding sentence, andRead the case →.LatestFindingTicker.tsx(new) —surfaces/default,px-4 py-3, label intext-alternative-smmono, sentence in 14px secondary, link right-aligned (DefaultLinkhighlight/sm). Stacks on mobile.mocked-latest-finding.ts(new) — the finding sentence + case URL.Figma:
3633:96681(annotated "Show the latest blog post").Mocked, on purpose
The spec wants this fed by the Paragraph API ("links to the Paragraph last publication, use API") and there is no Paragraph integration in the repo yet. Per Bruno's call, the content is mocked: the ticker reads exactly two fields (
finding,caseUrl), so swapping in a server-side fetch of the newest post is a drop-in replacement.TODO(DEV-1148)marks it.The link currently points at the publication root (
paragraph.com/@blockful) rather than a specific post.Verification
tsc --noEmitclean ·eslintclean · 527 tests / 54 suites pass · rendered locally at 1440px.