From 6bd24e7e1f277525417d97b4944df3bb68d6eab4 Mon Sep 17 00:00:00 2001 From: Luke Vella Date: Wed, 9 Jul 2025 12:19:41 +0300 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20Use=20revalidatePath=20ins?= =?UTF-8?q?tead=20of=20client=20side=20refresh=20(#1802)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../[locale]/(space)/settings/profile/actions.ts | 11 +++++++++++ .../settings/profile/delete-account-dialog.tsx | 13 +------------ apps/web/src/app/[locale]/admin-setup/actions.ts | 3 +++ .../[locale]/admin-setup/make-me-admin-button.tsx | 8 +------- .../users/dialogs/delete-user-dialog.tsx | 3 --- .../app/[locale]/control-panel/users/user-row.tsx | 8 +------- apps/web/src/features/user/actions.ts | 5 +++++ 7 files changed, 22 insertions(+), 29 deletions(-) diff --git a/apps/web/src/app/[locale]/(space)/settings/profile/actions.ts b/apps/web/src/app/[locale]/(space)/settings/profile/actions.ts index 1163dedc5..0ae91251a 100644 --- a/apps/web/src/app/[locale]/(space)/settings/profile/actions.ts +++ b/apps/web/src/app/[locale]/(space)/settings/profile/actions.ts @@ -1,6 +1,7 @@ "use server"; import { ActionError, authActionClient } from "@/features/safe-action/server"; +import { signOut } from "@/next-auth"; import { subject } from "@casl/ability"; import { prisma } from "@rallly/database"; @@ -33,6 +34,16 @@ export const deleteCurrentUserAction = authActionClient.action( }, }); + ctx.posthog?.capture({ + event: "delete_account", + distinctId: ctx.user.id, + properties: { + email: ctx.user.email, + }, + }); + + await signOut(); + return { success: true, }; diff --git a/apps/web/src/app/[locale]/(space)/settings/profile/delete-account-dialog.tsx b/apps/web/src/app/[locale]/(space)/settings/profile/delete-account-dialog.tsx index 9b705fdf6..e05889369 100644 --- a/apps/web/src/app/[locale]/(space)/settings/profile/delete-account-dialog.tsx +++ b/apps/web/src/app/[locale]/(space)/settings/profile/delete-account-dialog.tsx @@ -1,5 +1,4 @@ "use client"; -import { usePostHog } from "@rallly/posthog/client"; import { Button } from "@rallly/ui/button"; import type { DialogProps } from "@rallly/ui/dialog"; import { @@ -13,7 +12,6 @@ import { } from "@rallly/ui/dialog"; import { Form, FormField, FormItem, FormMessage } from "@rallly/ui/form"; import { Input } from "@rallly/ui/input"; -import { signOut } from "next-auth/react"; import { useForm } from "react-hook-form"; import { Trans } from "@/components/trans"; @@ -34,16 +32,7 @@ export function DeleteAccountDialog({ }, }); - const posthog = usePostHog(); - - const deleteUser = useSafeAction(deleteCurrentUserAction, { - onSuccess: () => { - posthog?.capture("delete account"); - signOut({ - redirectTo: "/login", - }); - }, - }); + const deleteUser = useSafeAction(deleteCurrentUserAction); const { t } = useTranslation(); return ( diff --git a/apps/web/src/app/[locale]/admin-setup/actions.ts b/apps/web/src/app/[locale]/admin-setup/actions.ts index 6d162fc89..d9a3ef17a 100644 --- a/apps/web/src/app/[locale]/admin-setup/actions.ts +++ b/apps/web/src/app/[locale]/admin-setup/actions.ts @@ -3,6 +3,7 @@ import { authActionClient } from "@/features/safe-action/server"; import { ActionError } from "@/features/safe-action/server"; import { subject } from "@casl/ability"; import { prisma } from "@rallly/database"; +import { redirect } from "next/navigation"; export const makeMeAdminAction = authActionClient.action(async ({ ctx }) => { if (ctx.ability.cannot("update", subject("User", ctx.user), "role")) { @@ -20,4 +21,6 @@ export const makeMeAdminAction = authActionClient.action(async ({ ctx }) => { role: "admin", }, }); + + redirect("/control-panel"); }); diff --git a/apps/web/src/app/[locale]/admin-setup/make-me-admin-button.tsx b/apps/web/src/app/[locale]/admin-setup/make-me-admin-button.tsx index 3e120fb3c..e056286d3 100644 --- a/apps/web/src/app/[locale]/admin-setup/make-me-admin-button.tsx +++ b/apps/web/src/app/[locale]/admin-setup/make-me-admin-button.tsx @@ -3,16 +3,10 @@ import { Trans } from "@/components/trans"; import { useSafeAction } from "@/features/safe-action/client"; import { Button } from "@rallly/ui/button"; -import { useRouter } from "next/navigation"; import { makeMeAdminAction } from "./actions"; export function MakeMeAdminButton() { - const router = useRouter(); - const makeMeAdmin = useSafeAction(makeMeAdminAction, { - onSuccess: () => { - router.replace("/control-panel"); - }, - }); + const makeMeAdmin = useSafeAction(makeMeAdminAction); return (