import { format } from "date-fns"; import { de } from "date-fns/locale"; import { FileText, Megaphone, Send } from "lucide-react"; import { UserRole } from "@prisma/client"; import { requireRole } from "@/lib/auth-utils"; import { prisma } from "@/lib/prisma"; import { Badge } from "@/components/ui/badge"; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "@/components/ui/card"; import { NewsForm } from "./news-form"; export const metadata = { title: "Schwarzes Brett · Kita-Planer" }; export default async function AdminNewsPage() { const session = await requireRole([UserRole.ADMIN]); const kitaId = session.user.kitaId; if (!kitaId) { throw new Error("Kein Mandant zugeordnet."); } const announcements = await prisma.announcement.findMany({ where: { kitaId }, select: { id: true, title: true, createdAt: true, attachments: { select: { id: true, fileName: true, }, }, author: { select: { firstName: true, lastName: true, }, }, }, orderBy: { createdAt: "desc" }, take: 8, }); return (

KOMMUNIKATION · SCHWARZES BRETT

Meldungen{" "} veröffentlichen

Veröffentliche verbindliche Ankündigungen für deine Kita. Anhänge werden geschützt gespeichert und nur für eingeloggte Nutzer derselben Kita ausgeliefert.

{announcements.length} zuletzt
Neue Ankündigung Markdown wird sicher gerendert; PDF, JPG und PNG können als geschützte Anhänge hinzugefügt werden. Zuletzt veröffentlicht Die neuesten Meldungen auf dem Schwarzen Brett. {announcements.length === 0 ? (

Noch keine Ankündigungen

Veröffentlichte Meldungen erscheinen hier.

) : ( announcements.map((announcement) => (

{announcement.title}

{announcement.attachments.length > 0 && ( {announcement.attachments.length} )}

{format(announcement.createdAt, "dd.MM.yyyy HH:mm", { locale: de, })}{" "} · {announcement.author.firstName}{" "} {announcement.author.lastName}

)) )}
); }