feat(wrapped): integrate WhatsApp Wrapped into /wrapped route - #388
feat(wrapped): integrate WhatsApp Wrapped into /wrapped route#388fellnerse wants to merge 16 commits into
Conversation
|
Visit the preview URL for this PR (updated for commit 4aa8a0d): https://whatsanalyze-80665--pr388-feat-integrate-wrapp-gj3hq9ly.web.app (expires Tue, 15 Sep 2026 07:26:15 GMT) 🔥 via Firebase Hosting GitHub Action 🌎 Sign: 5796a863d3a1b99df3fcb31feec7a39514d97aa4 |
😈 Devil's Advocate Review: WhatsAnalyze Wrapped IntegrationComprehensive architectural, functional, and visual audit comparing standalone ( 🚨 Critical Bugs & Broken Functionality
|
…e links, and layout - Disambiguate primary and wrapped Firebase services (, vs , ) - Initialize and provide Firebase Analytics for telemetry tracking - Update share link destination in ShareInvite to /wrapped/results - Fix WhatsApp background asset URL path in tailwind.css - Add link back to WhatsAnalyze main app in wrapped layout with localized strings
27bd6df to
23468ec
Compare
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
Review: Current
|
|
sharing does not work: |
…hat year fallback
…view wildcard CORS
…ocal builds for Stripe sandbox



Summary
Migrates the standalone WhatsApp Wrapped application (
whatsanalyze-wrapped) into the main repository under the/wrappedroute hierarchy. This consolidates domain equity onto the primary domain, improves user conversion flow, and keeps Wrapped and WhatsAnalyze neatly organized.Key Changes
preflight: falseintailwind.config.mjsand scoped CSS inassets/wrapped/tailwind.cssto ensure complete style isolation without conflicts with Vuetify.layouts/wrapped.vue: Isolated dark-mode layout with Wrapped header, language switcher, and footer.pages/wrapped/index.vue: Landing and chat upload interface with dynamic target year recap logic.pages/wrapped/results.vue: Full story carousel running all 11 story slides (Intros, Emojis, Words, Conversations, and Encrypted Share).pages/wrapped/subscription/*: Verification, success, and cancelation flows for Stripe subscriptions.@pinia/nuxt) andpinia-plugin-persistedstateunderstores/wrapped/withsessionStoragepersistence.utils/wrapped/parsing/) and web-worker parser (assets/wrapped/workers/).wrappedFirebase) inplugins/firebase.client.jspointing towhatsanalyze-wrapped-prodFirestore, preserving existing client-side AES-GCM encrypted share links.en,de,es,fr,it,pt) ini18n/i18n.config.js.wrappedroutes tolocalizedPagesinnuxt.config.jsfor full static prerendering across all supported languages.whatsapp-wrapped-year-reviewto link internally tolocalePath('/wrapped').Verification
pnpm generate: Successfully prerendered all 112 static routes and generated PWA service worker with 261 precache entries.pnpm test:generated: Verified all 15 expected pages indist/.pnpm test: Jest unit tests passed (4/4).pnpm playwright test tests/e2e/wrapped.spec.js: Passed on Desktop Chromium and Mobile Chromium (6/6).