'use client'; import { useState, useTransition } from 'react'; import { zodResolver } from '@hookform/resolvers/zod'; import { useForm } from 'react-hook-form'; import { Alert, AlertDescription, AlertTitle } from '@kit/ui/alert'; import { AlertDialog, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger, } from '@kit/ui/alert-dialog'; import { Button } from '@kit/ui/button'; import { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, } from '@kit/ui/form'; import { If } from '@kit/ui/if'; import { Input } from '@kit/ui/input'; import { banUserAction } from '../lib/server/admin-server-actions'; import { BanUserSchema } from '../lib/server/schema/admin-actions.schema'; export function AdminBanUserDialog( props: React.PropsWithChildren<{ userId: string; }>, ) { const [pending, startTransition] = useTransition(); const [error, setError] = useState(false); const form = useForm({ resolver: zodResolver(BanUserSchema), defaultValues: { userId: props.userId, confirmation: '', }, }); return ( {props.children} Ban User Are you sure you want to ban this user? Please note that the user will stay logged in until their session expires.
{ startTransition(async () => { try { await banUserAction(data); setError(false); } catch { setError(true); } }); })} > Error There was an error banning the user. Please check the server logs to see what went wrong. ( Type CONFIRM to confirm Are you sure you want to do this? )} /> Cancel
); }