From 2374177c202410390a3a2e513ef703c7829ae810 Mon Sep 17 00:00:00 2001 From: Eliezer Steinbock <3090527+elie222@users.noreply.github.com> Date: Fri, 29 Aug 2025 15:39:04 +0300 Subject: [PATCH 1/3] fix utms --- .../[emailAccountId]/onboarding/page.tsx | 11 ++++++++++ .../app/(landing)/welcome-redirect/page.tsx | 13 ------------ apps/web/app/(landing)/welcome/page.tsx | 11 ++++++++++ apps/web/app/(landing)/welcome/utms.tsx | 20 +++++++++++++++++++ 4 files changed, 42 insertions(+), 13 deletions(-) diff --git a/apps/web/app/(app)/[emailAccountId]/onboarding/page.tsx b/apps/web/app/(app)/[emailAccountId]/onboarding/page.tsx index 4357c2f3c1..e598522d87 100644 --- a/apps/web/app/(app)/[emailAccountId]/onboarding/page.tsx +++ b/apps/web/app/(app)/[emailAccountId]/onboarding/page.tsx @@ -1,6 +1,9 @@ import { Suspense } from "react"; import type { Metadata } from "next"; +import { after } from "next/server"; import { OnboardingContent } from "@/app/(app)/[emailAccountId]/onboarding/OnboardingContent"; +import { fetchUserAndStoreUtms } from "@/app/(landing)/welcome/utms"; +import { auth } from "@/utils/auth"; export const metadata: Metadata = { title: "Onboarding | Inbox Zero", @@ -16,6 +19,14 @@ export default async function OnboardingPage(props: { const step = searchParams.step ? Number.parseInt(searchParams.step, 10) : 1; + const authPromise = auth(); + + after(async () => { + const user = await authPromise; + if (!user?.user) return; + await fetchUserAndStoreUtms(user.user.id); + }); + return ( diff --git a/apps/web/app/(landing)/welcome-redirect/page.tsx b/apps/web/app/(landing)/welcome-redirect/page.tsx index ef4987aa62..2352095d4c 100644 --- a/apps/web/app/(landing)/welcome-redirect/page.tsx +++ b/apps/web/app/(landing)/welcome-redirect/page.tsx @@ -1,13 +1,8 @@ import { redirect } from "next/navigation"; -import { after } from "next/server"; import { auth } from "@/utils/auth"; import { env } from "@/env"; import prisma from "@/utils/prisma"; import { WelcomeRedirectContent } from "@/app/(landing)/welcome-redirect/content"; -import { storeUtms } from "@/app/(landing)/welcome/utms"; -import { createScopedLogger } from "@/utils/logger"; - -const logger = createScopedLogger("welcome-redirect"); export default async function WelcomeRedirectPage(props: { searchParams: Promise<{ question?: string; force?: boolean }>; @@ -29,13 +24,5 @@ export default async function WelcomeRedirectPage(props: { if (!searchParams.force && user.completedOnboardingAt) redirect(env.NEXT_PUBLIC_APP_HOME_PATH); - after(async () => { - if (!user.utms) { - await storeUtms(session.user.id).catch((error) => { - logger.error("Failed to store utms", { error }); - }); - } - }); - return ; } diff --git a/apps/web/app/(landing)/welcome/page.tsx b/apps/web/app/(landing)/welcome/page.tsx index 33cd5802df..3c2f26be85 100644 --- a/apps/web/app/(landing)/welcome/page.tsx +++ b/apps/web/app/(landing)/welcome/page.tsx @@ -1,9 +1,12 @@ import { Suspense } from "react"; import type { Metadata } from "next"; +import { after } from "next/server"; import { OnboardingForm } from "@/app/(landing)/welcome/form"; import { SquaresPattern } from "@/app/(landing)/home/SquaresPattern"; import { PageHeading, TypographyP } from "@/components/Typography"; import { CardBasic } from "@/components/ui/card"; +import { fetchUserAndStoreUtms } from "@/app/(landing)/welcome/utms"; +import { auth } from "@/utils/auth"; export const metadata: Metadata = { title: "Welcome", @@ -20,6 +23,14 @@ export default async function WelcomePage(props: { ? Number.parseInt(searchParams.question) : 0; + const authPromise = auth(); + + after(async () => { + const user = await authPromise; + if (!user?.user) return; + await fetchUserAndStoreUtms(user.user.id); + }); + return (
diff --git a/apps/web/app/(landing)/welcome/utms.tsx b/apps/web/app/(landing)/welcome/utms.tsx index 9f1d897791..5a8d7eb375 100644 --- a/apps/web/app/(landing)/welcome/utms.tsx +++ b/apps/web/app/(landing)/welcome/utms.tsx @@ -1,7 +1,25 @@ import { cookies } from "next/headers"; import prisma from "@/utils/prisma"; +import { createScopedLogger } from "@/utils/logger"; + +const logger = createScopedLogger("utms"); + +export async function fetchUserAndStoreUtms(userId: string) { + const user = await prisma.user.findUnique({ + where: { id: userId }, + select: { utms: true }, + }); + + if (user && !user.utms) { + await storeUtms(userId).catch((error) => { + logger.error("Failed to store utms", { error }); + }); + } +} export async function storeUtms(userId: string) { + logger.info("Storing utms", { userId }); + const cookieStore = await cookies(); const utmCampaign = cookieStore.get("utm_campaign"); const utmMedium = cookieStore.get("utm_medium"); @@ -21,4 +39,6 @@ export async function storeUtms(userId: string) { where: { id: userId }, data: { utms }, }); + + logger.info("Stored utms", { utms, userId }); } From c06d33af8f1a5d3bf4951a746e70af0b7117e506 Mon Sep 17 00:00:00 2001 From: Eliezer Steinbock <3090527+elie222@users.noreply.github.com> Date: Fri, 29 Aug 2025 16:02:25 +0300 Subject: [PATCH 2/3] try catch --- apps/web/app/(landing)/welcome/utms.tsx | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/apps/web/app/(landing)/welcome/utms.tsx b/apps/web/app/(landing)/welcome/utms.tsx index 5a8d7eb375..03c46fdc89 100644 --- a/apps/web/app/(landing)/welcome/utms.tsx +++ b/apps/web/app/(landing)/welcome/utms.tsx @@ -5,14 +5,19 @@ import { createScopedLogger } from "@/utils/logger"; const logger = createScopedLogger("utms"); export async function fetchUserAndStoreUtms(userId: string) { - const user = await prisma.user.findUnique({ - where: { id: userId }, - select: { utms: true }, - }); + const user = await prisma.user + .findUnique({ + where: { id: userId }, + select: { utms: true }, + }) + .catch((error) => { + logger.error("Failed to fetch user", { error, userId }); + return null; + }); if (user && !user.utms) { await storeUtms(userId).catch((error) => { - logger.error("Failed to store utms", { error }); + logger.error("Failed to store utms", { error, userId }); }); } } From 69d5c866ed7228452b69ec29ec5c17fa8beef34e Mon Sep 17 00:00:00 2001 From: Eliezer Steinbock <3090527+elie222@users.noreply.github.com> Date: Fri, 29 Aug 2025 16:03:09 +0300 Subject: [PATCH 3/3] v2.6.19 --- version.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.txt b/version.txt index 8c00422158..31d573518c 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -v2.6.18 \ No newline at end of file +v2.6.19 \ No newline at end of file