feat: modernize landing page design, localize login/forgot password forms, and add public privacy/imprint pages
All checks were successful
Staging Build / build (push) Successful in 2m42s

This commit is contained in:
DanielS
2026-06-25 22:25:11 +02:00
parent 08382ff4a1
commit e93cf7805c
8 changed files with 525 additions and 114 deletions

View File

@@ -44,7 +44,7 @@ export function LoginForm({
try {
const res = await signIn(email, password);
if (!res.success) {
setError(res.error || "An error occurred");
setError(res.error || "Ein Fehler ist aufgetreten.");
return;
}
if (nextParam) {
@@ -55,7 +55,7 @@ export function LoginForm({
router.push("/my-customers");
}
} catch (error: unknown) {
setError(error instanceof Error ? error.message : "An error occurred");
setError(error instanceof Error ? error.message : "Ein Fehler ist aufgetreten.");
} finally {
setIsLoading(false);
}
@@ -65,20 +65,20 @@ export function LoginForm({
<div className={cn("flex flex-col gap-6", className)} {...props}>
<Card>
<CardHeader>
<CardTitle className="text-2xl">Login</CardTitle>
<CardTitle className="text-2xl">Anmelden</CardTitle>
<CardDescription>
Enter your email below to login to your account
Geben Sie Ihre E-Mail-Adresse und Ihr Passwort ein, um sich anzumelden.
</CardDescription>
</CardHeader>
<CardContent>
<form onSubmit={handleLogin}>
<div className="flex flex-col gap-6">
<div className="grid gap-2">
<Label htmlFor="email">Email</Label>
<Label htmlFor="email">E-Mail</Label>
<Input
id="email"
type="email"
placeholder="m@example.com"
placeholder="name@beispiel.de"
required
value={email}
onChange={(e) => setEmail(e.target.value)}
@@ -86,12 +86,12 @@ export function LoginForm({
</div>
<div className="grid gap-2">
<div className="flex items-center">
<Label htmlFor="password">Password</Label>
<Label htmlFor="password">Passwort</Label>
<Link
href="/auth/forgot-password"
className="ml-auto inline-block text-sm underline-offset-4 hover:underline"
>
Forgot your password?
Passwort vergessen?
</Link>
</div>
<Input
@@ -114,7 +114,7 @@ export function LoginForm({
)}
{error && <p className="text-sm text-red-500">{error}</p>}
<Button type="submit" className="w-full" disabled={isLoading}>
{isLoading ? "Logging in..." : "Login"}
{isLoading ? "Wird angemeldet..." : "Anmelden"}
</Button>
</div>
</form>