feat(report): scrollytelling redesign with narrative paywall#125
Merged
feat(report): scrollytelling redesign with narrative paywall#125
Conversation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…iffhanger paywall Replace dashboard-like report layout with scroll-driven storytelling experience. Content flows through emotional arc: identity → activity → strengths → dramatic turn → growth areas → cliffhanger paywall. Key changes: - ContentGateway: open all 5 domains for free tier (diagnosis free, prescription paid) - TabbedReportContainer: complete rewrite as narrative scroll layout (-522 lines net) - NarrativeMoment: full-screen sticky chapter transitions with dramatic variant - StrengthsOverview/DiagnosisOverview: aggregate all domain cards with staggered reveal - CliffhangerWall: dramatic paywall highlighting most critical issue with blurred fix - useScrollReveal: IntersectionObserver-based one-shot reveal with reduced-motion support - Remove domain-level locking, per-domain lock overlays, and ProgressiveMeter Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
… and UnlockSection Use finally block to guarantee setIsCreditLoading(false) runs in all code paths, including the success branch where onCreditsUsed triggers a refetch. Prevents button staying in disabled/loading state during slow network conditions. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… and UnlockSection The else-if chain only handled 'insufficient_credits', leaving other failure reasons (e.g. unknown reason codes) with no user-facing error message. Replace with exhaustive else branch that shows data.message or a generic fallback for any non-success response. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…d preview gallery - Thread handleViewContext through StrengthsOverview and DiagnosisOverview so SourceContextSidebar opens from evidence links in the scrollytelling view - Remove LockedDomainPreview interface and "What You're Missing" gallery from UnlockSection (no longer meaningful since all domains are visible in free tier) - Clean up ~130 lines of orphaned preview gallery CSS Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ockSection Deduplicate ~120 lines of identical payment handling logic (credit use + checkout) into a shared usePayment hook. Both paywall components now call the same hook. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…crollReveal Move translation key mapping to single source in worker-insights.ts (was duplicated in 3 files). Replace 18-line inline IntersectionObserver with useScrollReveal hook. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Project uses named exports exclusively; the redundant default export was never consumed. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Collaborator
Author
Code ReviewNo issues found. 5-agent parallel review completed:
Generated with Claude Code using /ship-it If useful, react with a thumbs-up. Otherwise, thumbs-down. |
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
prefers-reduced-motionsupportSimplification (ship-it)
usePaymenthook extraction: Deduplicated ~120 lines of identical payment logic from CliffhangerWall and UnlockSection into a shared hookDOMAIN_TO_TRANSLATION_KEYcentralization: Moved from 3 duplicate definitions to single source inworker-insights.tsuseScrollRevealreuse: Replaced 18-line inline IntersectionObserver in WorkerInsightsSection with existing hookChanges
feat(report): scrollytelling redesign with narrative structure and cliffhanger paywallfix(report): reset credit loading state on success in CliffhangerWall and UnlockSectionfix(report): handle all credit API failure reasons in CliffhangerWall and UnlockSectionfix(report): wire onViewContext to Overview components and remove dead preview galleryrefactor(hooks): extract usePayment hook from CliffhangerWall and UnlockSectionrefactor(report): centralize DOMAIN_TO_TRANSLATION_KEY and reuse useScrollRevealrefactor(report): remove unused default export from FloatingProgressDotsTest plan
npm run typecheckpassesnpm testpasses — 1157/1157prefers-reduced-motion: all animations disabled, content immediately visible/r/[id]): summary page unaffected🤖 Generated with Claude Code using /ship-it