Fix auth form errors and redirects: Add React keys/useEffects for error rendering and scroll, Inertia::location in controllers for SPA navigation, extend RegistrationTest and add E2E. Update docs (changes/2025-10-02-registration-fixes.md, prp/13-backend-authentication.md). Add new UI components (accordion, carousel, progress, table, tabs), marketing/legal pages (Blog, Kontakt, Datenschutz, etc.), fonts, user migration (remove_name), views/css/package updates, seeders/factories.

This commit is contained in:
Codex Agent
2025-10-02 11:40:48 +02:00
parent 1945f664c6
commit 7475210893
101 changed files with 3406 additions and 376 deletions

View File

@@ -25,14 +25,28 @@ export default function Login({ status, canResetPassword }: LoginProps) {
const submit = (e: React.FormEvent) => {
e.preventDefault();
post('/login');
post('/login', {
preserveState: true,
onSuccess: () => {
console.log('Login successful');
},
onError: (errors: Record<string, string>) => {
console.log('Login errors:', errors);
},
});
};
React.useEffect(() => {
if (Object.keys(errors).length > 0) {
window.scrollTo({ top: 0, behavior: 'smooth' });
}
}, [errors]);
return (
<AuthLayout title="Log in to your account" description="Enter your email and password below to log in">
<Head title="Log in" />
<form onSubmit={submit} className="flex flex-col gap-6">
<form key={`login-form-${Object.keys(errors).length}`} onSubmit={submit} className="flex flex-col gap-6">
<div className="grid gap-6">
<div className="grid gap-2">
<Label htmlFor="email">Email address</Label>
@@ -48,7 +62,7 @@ export default function Login({ status, canResetPassword }: LoginProps) {
value={data.email}
onChange={(e) => setData('email', e.target.value)}
/>
<InputError message={errors.email} />
<InputError key={`error-email`} message={errors.email} />
</div>
<div className="grid gap-2">
@@ -71,7 +85,7 @@ export default function Login({ status, canResetPassword }: LoginProps) {
value={data.password}
onChange={(e) => setData('password', e.target.value)}
/>
<InputError message={errors.password} />
<InputError key={`error-password`} message={errors.password} />
</div>
<div className="flex items-center space-x-3">
@@ -100,6 +114,14 @@ export default function Login({ status, canResetPassword }: LoginProps) {
</form>
{status && <div className="mb-4 text-center text-sm font-medium text-green-600">{status}</div>}
{Object.keys(errors).length > 0 && (
<div key={`general-errors-${Object.keys(errors).join('-')}`} className="p-4 bg-red-50 border border-red-200 rounded-md mb-4">
<p className="text-sm text-red-800">
{Object.values(errors).join(' ')}
</p>
</div>
)}
</AuthLayout>
);
}