import { auth } from '@/lib/auth'; import { redirect } from 'next/navigation'; import Link from 'next/link'; import { getTeam, isTeamAdmin } from '@/services/teams'; import { getTeamOKRs } from '@/services/okrs'; import { TeamDetailClient } from '@/components/teams/TeamDetailClient'; import { DeleteTeamButton } from '@/components/teams/DeleteTeamButton'; import { OKRsList } from '@/components/okrs'; import { Button } from '@/components/ui'; import { Card } from '@/components/ui'; import { notFound } from 'next/navigation'; import type { TeamMember } from '@/lib/types'; interface TeamDetailPageProps { params: Promise<{ id: string }>; } export default async function TeamDetailPage({ params }: TeamDetailPageProps) { const { id } = await params; const session = await auth(); if (!session?.user?.id) { redirect('/login'); } const team = await getTeam(id); if (!team) { notFound(); } // Check if user is a member const isMember = team.members.some((m) => m.userId === session.user?.id); if (!isMember) { redirect('/teams'); } const isAdmin = await isTeamAdmin(id, session.user.id); const okrsData = await getTeamOKRs(id); return (
{/* Header */}
← Retour aux équipes

👥 {team.name}

{team.description &&

{team.description}

}
{isAdmin && (
)}
{/* Members Section */} {/* OKRs Section */}
); }