Migrate frontend to Nuxt 4 and Vue 3 - #381
Merged
Merged
Conversation
|
Visit the preview URL for this PR (updated for commit 9e06cf5): https://whatsanalyze-80665--pr381-modernization-nuxt4-cyg61rvl.web.app (expires Fri, 11 Sep 2026 18:10:07 GMT) 🔥 via Firebase Hosting GitHub Action 🌎 Sign: 5796a863d3a1b99df3fcb31feec7a39514d97aa4 |
fellnerse
marked this pull request as ready for review
September 2, 2026 11:31
added 15 commits
September 2, 2026 15:11
- helloworld now also returns the created subscriptionId (additive) - opt-in Playwright suite (pnpm test:e2e:sandbox) boots the Functions emulator + dev server and exercises the real PayPal sandbox; buyer approval stays manual by design - optional GitHub workflow runs it only when PAYPAL_PASSWORD_DEV secret is configured; emulator reads it from gitignored functions/.secret.local - pin TMPDIR=/tmp for the emulator: macOS truncates unix-socket paths at ~104 chars, colliding worker sockets and routing requests to the wrong function - raise CI test timeout to 120s and assertion timeout to 15s (nuxt dev cold-compiles pages; small runners exceeded Playwright's defaults)
The old sandbox plan had total_cycles=1 (PayPal's default when omitted), so every subscription became EXPIRED one second after the first payment. Point the dev config at the new plan P-0KW41015GP654580PNKMT6EY and set total_cycles: 0 explicitly in createPlan. Also documented: the sandbox webhook registration was missing PAYMENT.SALE.COMPLETED (prod subscribes to *); it is now aligned to *.
- pin explicit pwa.workbox.globPatterns: @vite-pwa/nuxt replaces the workbox default when payload extraction is active, which left / out of the precache manifest and crashed every navigation with non-precached-url from createHandlerBoundToURL - restructure the download dialog: a single activator button binds the activator props, pricing cards render outside the overlay. multi-root activator slots dropped the props, so the buttons' own @click handlers never fired - markRaw the pdf worker instance so Vue reactivity cannot wrap it - objectToDictionary converts Date instances to ISO strings; proxied dates cannot be structured-cloned and stalled the worker silently - guard attachment image decoding:InvalidStateError on some WhatsApp jpegs now degrades to text rendering instead of killing the pdf run - guard empty FileReader results and parse errors in zipLoadEndHandler; previously they surfaced as an unhandled jszip rejection ("Can't read the data of 'the loaded zip file'") with no UI feedback - document the findings in docs/modernization-runbook.md
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
…n colors, and German copy
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This was referenced Sep 4, 2026
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
Notable migration details
srcDir: "."to avoid mixing a framework migration with a directory restructuredist$firebasecaller interfaceValidation
nix develop --command pnpm install --frozen-lockfileNUXT_TELEMETRY_DISABLED=1 nix develop --command pnpm run build(58 prerendered routes)nix develop --command pnpm run testnix develop --command pnpm run format:checknix develop --command pnpm run lintnix develop --command pnpm run test:generatedpnpm test:e2e(10 passed, Chromium desktop/mobile; local regression suite)/git diff --checkReview note
This is intentionally a draft because it is the framework boundary of the modernization sequence and touches most frontend integrations. The migration baseline is kept in a separate commit so the functional migration diff remains reviewable.