Repository navigation
fix(landing): TASK-20600 desktop hero Download now opens the scan-to-download QR - #3024
Conversation
During the pwa-sunset window the desktop hero showed only two store web links — the one desktop download surface without the QR path every other surface (home, setup, guest CTAs) follows, and a store web page is a dead end for someone sitting at a laptop. Add the Download now primary that opens ScanToDownloadModal, keep the store pair. Flag-off renders are untouched: every changed line lives inside the migrationOn && isDesktop branch.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Team Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe desktop landing hero now includes a “Download now” button. The button opens a lazily loaded QR scan modal. Existing store badges and supporting text remain visible. ChangesLanding hero QR download
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to Desktop visitors gain a Download now button that opens the QR download modal while retaining App Store and Google Play links. The change is ready to merge with no identified material risk. Sequence Diagram(s)sequenceDiagram
participant DesktopVisitor
participant LandingPageClient
participant ScanToDownloadModal
DesktopVisitor->>LandingPageClient: Select Download now
LandingPageClient->>ScanToDownloadModal: Render visible modal
ScanToDownloadModal-->>DesktopVisitor: Display QR download options
DesktopVisitor->>ScanToDownloadModal: Close modal
ScanToDownloadModal->>LandingPageClient: Call onClose
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Code-analysis diffPainscore total: 7762.68 → 7762.63 (-0.05) 🆕 New findings (9)
✅ Resolved (9)
|
🧪 UI test report — ✅ all greenSuites
📊 Coverage (unit)
⏱ 10 slowest test cases
|
|
/chip review |
There was a problem hiding this comment.
Chip review — no blocking findings — this is not an approval
Clean review: the desktop migration CTA opens the existing scan-to-download modal without changing the flag-off or mobile paths.
Checked clean
- Exact head, supplied base, and merge base match; the diff changes only LandingPageClient.tsx.
- Flag-on desktop behavior: Download now mounts the existing ScanToDownloadModal, close paths unmount it, and the QR-shown event uses landing_hero.
- Responsive and feature-flag branches: the new control is limited to migrationOn plus DeviceType.WEB; flag-off and phone CTA behavior are unchanged.
- QR destination and loading: the existing DownloadQR encodes the serving origin plus /app, and the dynamically imported modal is rendered only after the click.
- Security and trust boundaries: this UI-only change adds no auth, authorization, secret, amount, or outbound-data surface.
- Exact-head CI passed aggregate ci-success, typecheck, unit, e2e, eslint, format, human-authors, review, CodeQL, and action analysis; Deploy Preview was still in progress when checked.
Security review: did not run — this change has no security, privacy or money surface, so it was not asked. This review is one reviewer short.
Third opinion by claude-opus: 0 finding(s), marked with the model name. It answers only product truth, missing tests and the cross-repo contract, so treat its findings as advice.
Exact head: 6c4267bc2677 · Context: repo · Took 6m
…the modal Kush's review: three CTAs on the hero is noise; the modal already carries the store links under the QR.
There was a problem hiding this comment.
Chip review — no blocking findings — this is not an approval
No actionable defects found in the desktop landing-hero QR modal change.
Checked clean
- Verified the supplied head and merge base exactly match the detached worktree and PR metadata.
- Checked migration-flag and device branches: flag-off and mobile behavior remain unchanged, while desktop flag-on opens the existing scan-to-download modal.
- Checked Hero custom CTA composition, button behavior, modal close lifecycle, smart /app QR construction, store badges, and landing_hero analytics attribution.
- Checked exact-head CI: unit, e2e, typecheck, eslint, format, CodeQL, and workflow analysis checks were successful; deployment and aggregate reporting were still in progress.
- Ran git diff --check with no whitespace errors.
Security review: did not run — this change has no security, privacy or money surface, so it was not asked. This review is one reviewer short.
Third opinion by claude-opus: 0 finding(s), marked with the model name. It answers only product truth, missing tests and the cross-repo contract, so treat its findings as advice.
Exact head: d0d04e5d8f35 · Context: repo · Took 6m
0xkkonrad
left a comment
There was a problem hiding this comment.
rubberstamping this as i am not qualified to do reviews
Summary
Hotfix for the pwa-sunset landing hero on desktop. During the migration window the desktop hero showed only the two store web links — the one desktop download surface that skipped the scan-to-download QR rule every other surface follows (home banner, setup, guest CTAs), leaving a laptop visitor with a store web page as a dead end. The hero now shows one "Download now" primary that opens the existing
ScanToDownloadModal— smart QR encoding/app, with the App Store / Google Play pair inside the modal. The hero's own store-button pair is gone (Kush's call: one CTA on the hero, the store links live in the modal).No new components: composes the existing
ScanToDownloadModal/DownloadQRused by home and the guest flow. The modal chunk isdynamic()-imported and only fetched on click, so the landing critical path gains nothing.Task
Contributes to TASK-20600 — store links on landing + setup (this closes the gap between the task's intended desktop behavior — scan-to-download QR — and what shipped in #2591).
Risks / breaking changes
migrationOn && isDesktopbranch; flag-off renders the untouchedheroConfig.primaryCtapath. The only flag-off deltas are an unuseduseStateand adynamic()module reference that never loads.migration_qr_shownevent withsurface: landing_heroalready existed in the analytics schema).main→ creates main→dev back-merge debt.QA
localStorage.setItem('pwa-sunset', 'true')+ reload, desktop viewport → hero shows "Download now" + store pair; clicking opens the QR modal (QR encodes<origin>/app).posthog.featureFlags.overrideFeatureFlags({ flags: { 'pwa-sunset': true } }).Screenshots
Captured on the branch, local dev, desktop 1440×900. Assets live on the
pr-assets-3024orphan branch — delete it after merge.Mobile (flag on and off) renders no changed code path — untouched.