refactor: shared DeviceFrame primitive, fix phone-in-phone on wallet page#15
refactor: shared DeviceFrame primitive, fix phone-in-phone on wallet page#15nathanialhenniges merged 2 commits intomainfrom
Conversation
… page - Add shared DeviceFrame component (device shell + status bar + dynamic island) - Refactor PhoneFrame to thin wrapper over DeviceFrame (public-page preview) - Strip WalletPassPreview to content-only card (no device chrome) - Replace inline frame on wallet page with DeviceFrame width=300 height=auto Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…aude/ecstatic-joliot
|
Warning Rate limit exceeded
Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 51 minutes and 55 seconds. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (4)
✨ Finishing Touches🧪 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 |
Summary
DeviceFrameprimitive — reusable iPhone shell (status bar, dynamic island, signal/wifi/battery, parallax scroll,height="auto"for content-sized) with no framework couplingPhoneFramereduced to thin wrapper overDeviceFrame, preservingPreviewProvider+ 512→328 scale for public-page previews (appearance, builder) — no breaking changesWalletPassPreviewstripped to content-only pass card; all device chrome removedWhat changed
apps/web/src/components/admin/device-frame.tsxapps/web/src/components/admin/phone-frame.tsxDeviceFrame; movedStatusBar,useCurrentTime,PreviewSkeletonintoDeviceFrameapps/web/src/components/admin/wallet-pass-preview.tsxw-[340px]wrapper + rounded card shell; now returns pass card content onlyapps/web/src/app/admin/wallet/page.tsx<DeviceFrame width={300} height="auto" previewDark>Reviewer notes
PhoneFrameAPI is unchanged —PreviewRenderer,SharedPreview,MobilePreviewSheetneed zero changesheight="auto"(no scroll, no parallax); appearance/builder keepheight={570}with parallax viaPhoneFramepreviewDarkalways true — wallet pass sits on dark background)🤖 Generated with Claude Code