CreateUserDialog.jsx 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. "use client";
  2. import React from "react";
  3. import { UserPlus } from "lucide-react";
  4. import {
  5. Dialog,
  6. DialogContent,
  7. DialogDescription,
  8. DialogHeader,
  9. DialogTitle,
  10. DialogTrigger,
  11. } from "@/components/ui/dialog";
  12. import { Button } from "@/components/ui/button";
  13. import CreateUserForm from "@/components/admin/users/create-user/CreateUserForm";
  14. import { useCreateUserDialog } from "@/components/admin/users/create-user/useCreateUserDialog";
  15. export default function CreateUserDialog({ disabled = false, onCreated }) {
  16. const {
  17. open,
  18. setOpen,
  19. form,
  20. setPatch,
  21. error,
  22. policyLines,
  23. isSubmitting,
  24. effectiveDisabled,
  25. handleSubmit,
  26. handleOpenChange,
  27. } = useCreateUserDialog({ disabled, onCreated });
  28. return (
  29. <Dialog open={open} onOpenChange={handleOpenChange}>
  30. <DialogTrigger asChild>
  31. <Button type="button" disabled={disabled} title="Benutzer anlegen">
  32. <UserPlus className="h-4 w-4" />
  33. Benutzer anlegen
  34. </Button>
  35. </DialogTrigger>
  36. <DialogContent className="sm:max-w-xl">
  37. <DialogHeader>
  38. <DialogTitle>Benutzer anlegen</DialogTitle>
  39. <DialogDescription>
  40. Neues Benutzerkonto erstellen. Der Benutzer muss das Passwort beim
  41. ersten Login ändern.
  42. </DialogDescription>
  43. </DialogHeader>
  44. <CreateUserForm
  45. form={form}
  46. setPatch={setPatch}
  47. error={error}
  48. policyLines={policyLines}
  49. isSubmitting={isSubmitting}
  50. disabled={effectiveDisabled}
  51. onCancel={() => setOpen(false)}
  52. onSubmit={handleSubmit}
  53. />
  54. </DialogContent>
  55. </Dialog>
  56. );
  57. }