From 976644d1e69aac4b4d7a728a2cf84bd0f03439be Mon Sep 17 00:00:00 2001 From: "Calum H." Date: Mon, 19 Jan 2026 21:57:49 +0000 Subject: [PATCH] fix: conditionally fetch (#5157) * fix: conditionally fetch * fix: yeet --- apps/frontend/src/layouts/default.vue | 7 ++-- .../src/plugins/intl-payload-safety.ts | 17 --------- apps/frontend/src/plugins/payload-debugger.ts | 37 ------------------- 3 files changed, 4 insertions(+), 57 deletions(-) delete mode 100644 apps/frontend/src/plugins/intl-payload-safety.ts delete mode 100644 apps/frontend/src/plugins/payload-debugger.ts diff --git a/apps/frontend/src/layouts/default.vue b/apps/frontend/src/layouts/default.vue index b156ddbd6..e48c6653f 100644 --- a/apps/frontend/src/layouts/default.vue +++ b/apps/frontend/src/layouts/default.vue @@ -754,9 +754,10 @@ const route = useNativeRoute() const router = useNativeRouter() const link = config.public.siteUrl + route.path.replace(/\/+$/, '') -const { data: payoutBalance } = await useAsyncData('payout/balance', () => - useBaseFetch('payout/balance', { apiVersion: 3 }), -) +const { data: payoutBalance } = await useAsyncData('payout/balance', () => { + if (!auth.value.user) return null + return useBaseFetch('payout/balance', { apiVersion: 3 }) +}) const showTaxComplianceBanner = computed(() => { if (flags.value.testTaxForm && auth.value.user) return true diff --git a/apps/frontend/src/plugins/intl-payload-safety.ts b/apps/frontend/src/plugins/intl-payload-safety.ts deleted file mode 100644 index f8211932f..000000000 --- a/apps/frontend/src/plugins/intl-payload-safety.ts +++ /dev/null @@ -1,17 +0,0 @@ -export default definePayloadPlugin(() => { - definePayloadReducer('IntlMessageFormat', (value) => { - if (value?.constructor?.name === 'IntlMessageFormat' || value?._ast !== undefined) { - if (import.meta.dev) { - console.warn('[i18n] IntlMessageFormat instance leaked into payload - returning null') - console.warn('[i18n] This indicates a bug that should be fixed upstream') - console.warn('[i18n] Leaked value:', value) - } - - return null - } - - return false - }) - - definePayloadReviver('IntlMessageFormat', () => null) -}) diff --git a/apps/frontend/src/plugins/payload-debugger.ts b/apps/frontend/src/plugins/payload-debugger.ts deleted file mode 100644 index dd579008d..000000000 --- a/apps/frontend/src/plugins/payload-debugger.ts +++ /dev/null @@ -1,37 +0,0 @@ -function findNonPOJOs( - obj: unknown, - path: string, - found: Array<{ path: string; type: string }> = [], -): Array<{ path: string; type: string }> { - if (obj === null || typeof obj !== 'object') return found - - const proto = Object.getPrototypeOf(obj) - if (proto !== Object.prototype && proto !== null && !Array.isArray(obj)) { - found.push({ path, type: obj.constructor?.name ?? 'Unknown' }) - } - - for (const [key, value] of Object.entries(obj)) { - findNonPOJOs(value, `${path}.${key}`, found) - } - - return found -} - -export default defineNuxtPlugin((nuxtApp) => { - if (!import.meta.dev || !import.meta.server) return - - nuxtApp.hooks.hook('app:rendered', () => { - try { - JSON.stringify(nuxtApp.payload) - } catch (e) { - console.error('[payload-debugger] Payload serialization would fail:', e) - const nonPOJOs = findNonPOJOs(nuxtApp.payload, 'payload') - if (nonPOJOs.length > 0) { - console.error('[payload-debugger] Non-POJO objects found in payload:') - for (const { path, type } of nonPOJOs) { - console.error(` - ${path}: ${type}`) - } - } - } - }) -})