'use client'; import Modal from '@/components/ui/Modal'; import { CheckIcon } from '@heroicons/react/24/outline'; import type { UserWithAvatar } from './types'; import type { PasswordChecks } from './passwordUtils'; type ChangePasswordModalProps = { open: boolean; user: UserWithAvatar; newPassword: string; newPasswordConfirm: string; pwChecks: PasswordChecks; pwError: string | null; saving: boolean; canSubmitPw: boolean; onNewPasswordChange: (value: string) => void; onNewPasswordConfirmChange: (value: string) => void; onClose: () => void; onSubmit: () => void; }; export default function ChangePasswordModal({ open, user, newPassword, newPasswordConfirm, pwChecks, pwError, saving, canSubmitPw, onNewPasswordChange, onNewPasswordConfirmChange, onClose, onSubmit, }: ChangePasswordModalProps) { if (!open) return null; return (
{ e.preventDefault(); onSubmit(); }} className="space-y-3 text-sm" >

Das neue Passwort gilt sofort für den Benutzer{' '} {user.arbeitsname || user.nwkennung}.

onNewPasswordChange(e.target.value)} />
onNewPasswordConfirmChange(e.target.value)} />

Sicherheitskriterien:

  • {pwChecks.lengthOk ? ( ) : ( )} Mindestens 12 Zeichen
  • {pwChecks.lowerOk ? ( ) : ( )} Mindestens ein Kleinbuchstabe (a–z)
  • {pwChecks.upperOk ? ( ) : ( )} Mindestens ein Großbuchstabe (A–Z)
  • {pwChecks.digitOk ? ( ) : ( )} Mindestens eine Ziffer (0–9)
  • {pwChecks.specialOk ? ( ) : ( )} Mindestens ein Sonderzeichen (!, ?, #, …)
{pwError && (

{pwError}

)}
); }