diff --git a/pickleglass_web/app/activity/details/page.tsx b/pickleglass_web/app/activity/details/page.tsx index f00f71a..f2069b5 100644 --- a/pickleglass_web/app/activity/details/page.tsx +++ b/pickleglass_web/app/activity/details/page.tsx @@ -2,7 +2,7 @@ import { useState, useEffect, Suspense } from 'react' import { useRedirectIfNotAuth } from '@/utils/auth' -import { useSearchParams } from 'next/navigation' +import { useSearchParams, useRouter } from 'next/navigation' import Link from 'next/link' import { UserProfile, @@ -10,6 +10,7 @@ import { Transcript, AiMessage, getSessionDetails, + deleteSession, } from '@/utils/api' type ConversationItem = (Transcript & { type: 'transcript' }) | (AiMessage & { type: 'ai_message' }); @@ -29,6 +30,8 @@ function SessionDetailsContent() { const [isLoading, setIsLoading] = useState(true); const searchParams = useSearchParams(); const sessionId = searchParams.get('sessionId'); + const router = useRouter(); + const [deleting, setDeleting] = useState(false); useEffect(() => { if (userInfo && sessionId) { @@ -47,6 +50,20 @@ function SessionDetailsContent() { } }, [userInfo, sessionId]); + const handleDelete = async () => { + if (!sessionId) return; + if (!window.confirm('Are you sure you want to delete this activity? This cannot be undone.')) return; + setDeleting(true); + try { + await deleteSession(sessionId); + router.push('/activity'); + } catch (error) { + alert('Failed to delete activity.'); + setDeleting(false); + console.error(error); + } + }; + if (!userInfo || isLoading) { return (