This commit includes several changes to the admin functionality. Most notably, it updates the actions deleteUser and banUser to deleteAccount and updates the UI for admin actions. It also includes new variants for badges, and adds new icons to buttons. In addition, it updates the user schemas to match these changes.
101 lines
2.5 KiB
TypeScript
101 lines
2.5 KiB
TypeScript
'use client';
|
|
|
|
import { zodResolver } from '@hookform/resolvers/zod';
|
|
import { useForm } from 'react-hook-form';
|
|
|
|
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 { Input } from '@kit/ui/input';
|
|
|
|
import { reactivateUser } from '../lib/server/admin-server-actions';
|
|
import { ReactivateUserSchema } from '../lib/server/schema/admin-actions.schema';
|
|
|
|
export function AdminReactivateUserDialog(
|
|
props: React.PropsWithChildren<{
|
|
userId: string;
|
|
}>,
|
|
) {
|
|
const form = useForm({
|
|
resolver: zodResolver(ReactivateUserSchema),
|
|
defaultValues: {
|
|
userId: props.userId,
|
|
confirmation: '',
|
|
},
|
|
});
|
|
|
|
return (
|
|
<AlertDialog>
|
|
<AlertDialogTrigger asChild>{props.children}</AlertDialogTrigger>
|
|
|
|
<AlertDialogContent>
|
|
<AlertDialogHeader>
|
|
<AlertDialogTitle>Reactivate User</AlertDialogTitle>
|
|
|
|
<AlertDialogDescription>
|
|
Are you sure you want to reactivate this user?
|
|
</AlertDialogDescription>
|
|
</AlertDialogHeader>
|
|
|
|
<Form {...form}>
|
|
<form
|
|
className={'flex flex-col space-y-8'}
|
|
onSubmit={form.handleSubmit((data) => {
|
|
return reactivateUser(data);
|
|
})}
|
|
>
|
|
<FormField
|
|
name={'confirmation'}
|
|
render={({ field }) => (
|
|
<FormItem>
|
|
<FormLabel>
|
|
Type <b>CONFIRM</b> to confirm
|
|
</FormLabel>
|
|
|
|
<FormControl>
|
|
<Input
|
|
required
|
|
pattern={'CONFIRM'}
|
|
placeholder={'Type CONFIRM to confirm'}
|
|
{...field}
|
|
/>
|
|
</FormControl>
|
|
|
|
<FormDescription>
|
|
Are you sure you want to do this?
|
|
</FormDescription>
|
|
|
|
<FormMessage />
|
|
</FormItem>
|
|
)}
|
|
/>
|
|
|
|
<AlertDialogFooter>
|
|
<AlertDialogCancel>Cancel</AlertDialogCancel>
|
|
|
|
<Button type={'submit'}>Reactivate User</Button>
|
|
</AlertDialogFooter>
|
|
</form>
|
|
</Form>
|
|
</AlertDialogContent>
|
|
</AlertDialog>
|
|
);
|
|
}
|