feat: enhance session management with sharing capabilities, real-time event synchronization, and UI updates for session display

This commit is contained in:
Julien Froidefond
2025-11-27 13:34:03 +01:00
parent 9ce2b62bc6
commit 10ff15392f
15 changed files with 1127 additions and 84 deletions

View File

@@ -3,6 +3,7 @@ import Link from 'next/link';
import { auth } from '@/lib/auth';
import { getSessionById } from '@/services/sessions';
import { SwotBoard } from '@/components/swot/SwotBoard';
import { SessionLiveWrapper } from '@/components/collaboration';
import { Badge } from '@/components/ui';
interface SessionPageProps {
@@ -33,6 +34,11 @@ export default async function SessionPage({ params }: SessionPageProps) {
</Link>
<span>/</span>
<span className="text-foreground">{session.title}</span>
{!session.isOwner && (
<Badge variant="accent" className="ml-2">
Partagé par {session.user.name || session.user.email}
</Badge>
)}
</div>
<div className="flex items-start justify-between">
@@ -56,12 +62,20 @@ export default async function SessionPage({ params }: SessionPageProps) {
</div>
</div>
{/* SWOT Board */}
<SwotBoard
{/* Live Session Wrapper */}
<SessionLiveWrapper
sessionId={session.id}
items={session.items}
actions={session.actions}
/>
sessionTitle={session.title}
shares={session.shares}
isOwner={session.isOwner}
canEdit={session.canEdit}
>
<SwotBoard
sessionId={session.id}
items={session.items}
actions={session.actions}
/>
</SessionLiveWrapper>
</main>
);
}