CreateUserDialog.jsx 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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. branchesStatus,
  24. branchExistence,
  25. isSubmitting,
  26. effectiveDisabled,
  27. canSubmit,
  28. handleSubmit,
  29. handleOpenChange,
  30. } = useCreateUserDialog({ disabled, onCreated });
  31. return (
  32. <Dialog open={open} onOpenChange={handleOpenChange}>
  33. <DialogTrigger asChild>
  34. <Button type="button" disabled={disabled} title="Benutzer anlegen">
  35. <UserPlus className="h-4 w-4" />
  36. Benutzer anlegen
  37. </Button>
  38. </DialogTrigger>
  39. <DialogContent className="sm:max-w-xl">
  40. <DialogHeader>
  41. <DialogTitle>Benutzer anlegen</DialogTitle>
  42. <DialogDescription>
  43. Neues Benutzerkonto erstellen. Der Benutzer muss das Passwort beim
  44. ersten Login ändern.
  45. </DialogDescription>
  46. </DialogHeader>
  47. <CreateUserForm
  48. form={form}
  49. setPatch={setPatch}
  50. error={error}
  51. policyLines={policyLines}
  52. branchesStatus={branchesStatus}
  53. branchExistence={branchExistence}
  54. isSubmitting={isSubmitting}
  55. disabled={effectiveDisabled}
  56. canSubmit={canSubmit}
  57. onCancel={() => setOpen(false)}
  58. onSubmit={handleSubmit}
  59. />
  60. </DialogContent>
  61. </Dialog>
  62. );
  63. }