From 84c2fbe2ecdcd26aa08e48b40b17bbda988f08a5 Mon Sep 17 00:00:00 2001 From: shawn Date: Tue, 12 May 2026 18:51:00 -0400 Subject: [PATCH] Remove newsletter preference and send job - Drop the settings UI and query for newsletter opt-in - Stop seeding newsletter defaults for new users - Remove the weekly newsletter cron --- .../_authenticated/settings/preferences.tsx | 3 -- .../settings/preferences/-notifications.tsx | 34 ------------------- packages/db/src/crons.ts | 6 ---- packages/db/src/user/account.ts | 1 - packages/features/src/user/lib/queries.ts | 4 --- 5 files changed, 48 deletions(-) delete mode 100644 apps/web/src/app/_authenticated/settings/preferences/-notifications.tsx diff --git a/apps/web/src/app/_authenticated/settings/preferences.tsx b/apps/web/src/app/_authenticated/settings/preferences.tsx index ebe0a683..584e0618 100644 --- a/apps/web/src/app/_authenticated/settings/preferences.tsx +++ b/apps/web/src/app/_authenticated/settings/preferences.tsx @@ -6,7 +6,6 @@ import { Shortcuts } from "~/features/shortcuts/components/shortcuts"; import { SettingsWrapper } from "./-wrapper"; import { Appearance } from "./preferences/-appearance"; import { Bangs } from "./preferences/-bangs"; -import { Notifications } from "./preferences/-notifications"; import { Personalization } from "./preferences/-personalization"; export const Route = createFileRoute("/_authenticated/settings/preferences")({ @@ -14,7 +13,6 @@ export const Route = createFileRoute("/_authenticated/settings/preferences")({ loader: async ({ context }) => { await Promise.all([ context.queryClient.ensureQueryData(userQueries.info()), - context.queryClient.ensureQueryData(userQueries.newsletterPreference()), context.queryClient.ensureQueryData(userQueries.showModelSelector()), ]); }, @@ -25,7 +23,6 @@ function PreferencesPage() { - diff --git a/apps/web/src/app/_authenticated/settings/preferences/-notifications.tsx b/apps/web/src/app/_authenticated/settings/preferences/-notifications.tsx deleted file mode 100644 index b20f2b11..00000000 --- a/apps/web/src/app/_authenticated/settings/preferences/-notifications.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { useState } from "react"; -import { useSuspenseQuery } from "@tanstack/react-query"; -import { useMutation } from "convex/react"; - -import { api } from "@acme/db/api"; -import { userQueries } from "@acme/features/user"; -import { Switch } from "@acme/ui/switch"; - -import { InfoCard } from "~/components/info-card"; - -export function Notifications() { - const { data: newsletterStatus } = useSuspenseQuery({ - ...userQueries.newsletterPreference(), - select: (data) => data ?? true, - }); - - const updatePref = useMutation(api.mail.newsletter.updatePreference); - const [checked, setChecked] = useState(newsletterStatus); - - return ( - -
- Weekly newsletter - { - setChecked(value); - void updatePref({ status: value }); - }} - /> -
-
- ); -} diff --git a/packages/db/src/crons.ts b/packages/db/src/crons.ts index 438d6356..5d0caff4 100644 --- a/packages/db/src/crons.ts +++ b/packages/db/src/crons.ts @@ -17,12 +17,6 @@ crons.monthly( internal.ai.suggestions.cleanup, ); -crons.weekly( - "send-newsletter", - { dayOfWeek: "thursday", hourUTC: 18, minuteUTC: 0 }, - internal.mail.actions.sendNewsletter, -); - crons.interval( "Remove old emails from the resend component", { hours: 12 }, diff --git a/packages/db/src/user/account.ts b/packages/db/src/user/account.ts index eee87013..92dba291 100644 --- a/packages/db/src/user/account.ts +++ b/packages/db/src/user/account.ts @@ -59,7 +59,6 @@ export const ensureUserExists = mutation({ await ctx.db.insert("users", { userId: identity.subject, email: identity.email ?? "", - newsletter: true, }); }, }); diff --git a/packages/features/src/user/lib/queries.ts b/packages/features/src/user/lib/queries.ts index 0c2e595c..3d2efad3 100644 --- a/packages/features/src/user/lib/queries.ts +++ b/packages/features/src/user/lib/queries.ts @@ -16,8 +16,4 @@ export const userQueries = { queryOptions({ ...convexQuery(api.user.subscription.showModelSelector, {}), }), - newsletterPreference: () => - queryOptions({ - ...convexQuery(api.mail.newsletter.getUserPreference, {}), - }), };