import type { Metadata } from 'next' import Link from 'next/link' import { db } from '@/lib/db' import { requireUser } from '@/lib/auth/current' import { listChannels } from '@/lib/chat/service' import { de } from '@/lib/i18n/de' import { StampMark } from '@/components/StampMark' import { NewChannelForm } from './NewChannelForm' export const metadata: Metadata = { title: de.channel.heading } export const dynamic = 'force-dynamic' /** * Freie Kanäle: Räume für Absprachen, die zu keiner Akte gehören. * * Ein Kanal über der Stufe des Lesers taucht nicht auf. Anders als bei Akten * ist die Existenz eines Kanals aber kein Geheimnis für die, die seine Stufe * haben — ein Raum, den man erraten müsste, wäre keiner. */ export default async function ChannelListPage() { const user = await requireUser() const [kanaele, levels] = await Promise.all([ listChannels(user.permissions), db.clearanceLevelConfig.findMany({ orderBy: { level: 'asc' } }), ]) const levelName = new Map(levels.map((l) => [l.level, l.name])) const darfAnlegen = user.permissions.isAdmin || user.permissions.permissions.has('case.create') return (

{de.channel.heading}

{de.channel.intro}

{kanaele.length === 0 ? (

{de.channel.empty}

) : ( )} {darfAnlegen ? (
l.level <= user.permissions.clearanceLevel)} />
) : null}
) }