diff --git a/packages/features/admin/src/components/admin-account-page.tsx b/packages/features/admin/src/components/admin-account-page.tsx index fbae14cc1..73faf614d 100644 --- a/packages/features/admin/src/components/admin-account-page.tsx +++ b/packages/features/admin/src/components/admin-account-page.tsx @@ -1,3 +1,5 @@ +import { BadgeX, Ban, ShieldPlus, Trash, VenetianMask } from 'lucide-react'; + import { Database } from '@kit/supabase/database'; import { getSupabaseServerComponentClient } from '@kit/supabase/server-component-client'; import { Alert, AlertDescription, AlertTitle } from '@kit/ui/alert'; @@ -67,28 +69,44 @@ async function PersonalAccountPage(props: { account: Account }) { {props.account.name} Personal Account + + + Banned + } > -
- - - - +
- + - + + + + + - +
@@ -134,7 +152,10 @@ async function TeamAccountPage(props: { } > - + diff --git a/packages/features/admin/src/components/admin-ban-user-dialog.tsx b/packages/features/admin/src/components/admin-ban-user-dialog.tsx index f7fbe7e51..412b7ca15 100644 --- a/packages/features/admin/src/components/admin-ban-user-dialog.tsx +++ b/packages/features/admin/src/components/admin-ban-user-dialog.tsx @@ -26,7 +26,7 @@ import { import { Input } from '@kit/ui/input'; import { banUser } from '../lib/server/admin-server-actions'; -import { DeleteUserSchema } from '../lib/server/schema/admin-actions.schema'; +import { BanUserSchema } from '../lib/server/schema/admin-actions.schema'; export function AdminBanUserDialog( props: React.PropsWithChildren<{ @@ -34,7 +34,7 @@ export function AdminBanUserDialog( }>, ) { const form = useForm({ - resolver: zodResolver(DeleteUserSchema), + resolver: zodResolver(BanUserSchema), defaultValues: { userId: props.userId, confirmation: '', @@ -57,7 +57,9 @@ export function AdminBanUserDialog(
{ + return banUser(data); + })} > { + return deleteAccount(data); + })} > { + return deleteAccount(data); + })} > , ) { const form = useForm({ - resolver: zodResolver(DeleteUserSchema), + resolver: zodResolver(ImpersonateUserSchema), defaultValues: { userId: props.userId, confirmation: '', diff --git a/packages/features/admin/src/components/admin-reactivate-user-dialog.tsx b/packages/features/admin/src/components/admin-reactivate-user-dialog.tsx index a13e3feb0..43619226a 100644 --- a/packages/features/admin/src/components/admin-reactivate-user-dialog.tsx +++ b/packages/features/admin/src/components/admin-reactivate-user-dialog.tsx @@ -1,3 +1,5 @@ +'use client'; + import { zodResolver } from '@hookform/resolvers/zod'; import { useForm } from 'react-hook-form'; @@ -24,7 +26,7 @@ import { import { Input } from '@kit/ui/input'; import { reactivateUser } from '../lib/server/admin-server-actions'; -import { DeleteUserSchema } from '../lib/server/schema/admin-actions.schema'; +import { ReactivateUserSchema } from '../lib/server/schema/admin-actions.schema'; export function AdminReactivateUserDialog( props: React.PropsWithChildren<{ @@ -32,7 +34,7 @@ export function AdminReactivateUserDialog( }>, ) { const form = useForm({ - resolver: zodResolver(DeleteUserSchema), + resolver: zodResolver(ReactivateUserSchema), defaultValues: { userId: props.userId, confirmation: '', @@ -55,7 +57,9 @@ export function AdminReactivateUserDialog( { + return reactivateUser(data); + })} > value === 'CONFIRM'), +const ConfirmationSchema = z.object({ + confirmation: z.custom((value) => value === 'CONFIRM'), }); -const UserIdSchema = confirmationSchema.extend({ +const UserIdSchema = ConfirmationSchema.extend({ userId: z.string().uuid(), }); @@ -13,6 +13,6 @@ export const ReactivateUserSchema = UserIdSchema; export const ImpersonateUserSchema = UserIdSchema; export const DeleteUserSchema = UserIdSchema; -export const DeleteAccountSchema = confirmationSchema.extend({ +export const DeleteAccountSchema = ConfirmationSchema.extend({ accountId: z.string().uuid(), });