Add account hierarchy framework with migrations, RLS policies, and UI components

This commit is contained in:
T. Zehetbauer
2026-03-31 22:18:04 +02:00
parent 7e7da0b465
commit 59546ad6d2
262 changed files with 11671 additions and 3927 deletions

View File

@@ -1,23 +1,28 @@
import { Mail } from 'lucide-react';
import { Button } from '@kit/ui/button';
import { Card, CardContent, CardHeader, CardTitle } from '@kit/ui/card';
import { Input } from '@kit/ui/input';
import { Label } from '@kit/ui/label';
import { Button } from '@kit/ui/button';
import { Mail } from 'lucide-react';
interface Props { params: Promise<{ slug: string }> }
interface Props {
params: Promise<{ slug: string }>;
}
export default async function NewsletterSubscribePage({ params }: Props) {
const { slug } = await params;
return (
<div className="min-h-screen bg-muted/30 flex items-center justify-center p-6">
<div className="bg-muted/30 flex min-h-screen items-center justify-center p-6">
<Card className="w-full max-w-md">
<CardHeader className="text-center">
<div className="mx-auto mb-4 flex h-12 w-12 items-center justify-center rounded-full bg-primary/10">
<Mail className="h-6 w-6 text-primary" />
<div className="bg-primary/10 mx-auto mb-4 flex h-12 w-12 items-center justify-center rounded-full">
<Mail className="text-primary h-6 w-6" />
</div>
<CardTitle>Newsletter abonnieren</CardTitle>
<p className="text-sm text-muted-foreground">Bleiben Sie über Neuigkeiten informiert.</p>
<p className="text-muted-foreground text-sm">
Bleiben Sie über Neuigkeiten informiert.
</p>
</CardHeader>
<CardContent>
<form className="space-y-4">
@@ -27,11 +32,19 @@ export default async function NewsletterSubscribePage({ params }: Props) {
</div>
<div className="space-y-2">
<Label>E-Mail-Adresse *</Label>
<Input name="email" type="email" placeholder="ihre@email.de" required />
<Input
name="email"
type="email"
placeholder="ihre@email.de"
required
/>
</div>
<Button type="submit" className="w-full">Abonnieren</Button>
<p className="text-xs text-center text-muted-foreground">
Sie können sich jederzeit abmelden. Wir senden Ihnen eine Bestätigungs-E-Mail.
<Button type="submit" className="w-full">
Abonnieren
</Button>
<p className="text-muted-foreground text-center text-xs">
Sie können sich jederzeit abmelden. Wir senden Ihnen eine
Bestätigungs-E-Mail.
</p>
</form>
</CardContent>