diff --git a/web/src/components/SessionDetail.tsx b/web/src/components/SessionDetail.tsx index 31062a97..6891384b 100644 --- a/web/src/components/SessionDetail.tsx +++ b/web/src/components/SessionDetail.tsx @@ -1,13 +1,16 @@ import { useMemo } from 'react' import type { ApiClient } from '@/api/client' +import { getTelegramWebApp } from '@/hooks/useTelegram' import type { DecryptedMessage, Session } from '@/types/api' import { Button } from '@/components/ui/button' -import { Badge } from '@/components/ui/badge' import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card' import { MessageBubble } from '@/components/MessageBubble' import { PermissionPanel } from '@/components/PermissionPanel' function getSessionTitle(session: Session): string { + if (session.metadata?.name) { + return session.metadata.name + } if (session.metadata?.summary?.text) { return session.metadata.summary.text } @@ -37,39 +40,31 @@ export function SessionDetail(props: { return Object.entries(rec).map(([requestId, request]) => ({ requestId, request })) }, [props.session]) + const isTelegram = getTelegramWebApp() !== null + return (
-
- - -
- - - + {!isTelegram && ( + <>
- {getSessionTitle(props.session)} - {requests.length > 0 ? ( - {requests.length} pending - ) : props.session.active ? ( - active - ) : ( - inactive - )} + +
- - {props.session.metadata?.host ? `Host: ${props.session.metadata.host}` : 'Host: (unknown)'} - -
- -
- {props.session.metadata?.path ?? props.session.id} -
-
-
+ + + + {getSessionTitle(props.session)} + + {props.session.metadata?.path ?? props.session.id} + + + + + )} diff --git a/web/src/components/SessionHeader.tsx b/web/src/components/SessionHeader.tsx index 7428fa5c..ffd7a26a 100644 --- a/web/src/components/SessionHeader.tsx +++ b/web/src/components/SessionHeader.tsx @@ -1,10 +1,14 @@ import { useMemo } from 'react' import type { Session } from '@/types/api' +import { getTelegramWebApp } from '@/hooks/useTelegram' function getSessionTitle(session: Session): string { if (session.metadata?.name) { return session.metadata.name } + if (session.metadata?.summary?.text) { + return session.metadata.summary.text + } if (session.metadata?.path) { const parts = session.metadata.path.split('/').filter(Boolean) return parts.length > 0 ? parts[parts.length - 1] : session.id.slice(0, 8) @@ -16,8 +20,14 @@ export function SessionHeader(props: { session: Session onBack: () => void }) { + const isTelegram = getTelegramWebApp() !== null const title = useMemo(() => getSessionTitle(props.session), [props.session]) + // In Telegram, don't render header (Telegram provides its own) + if (isTelegram) { + return null + } + return (
{/* Back button */} @@ -41,15 +51,13 @@ export function SessionHeader(props: { - {/* Session info */} + {/* Session info - two lines: title and path */}
-
-
- {title} -
+
+ {title}
- {props.session.metadata?.host ? `Host: ${props.session.metadata.host}` : props.session.id} + {props.session.metadata?.path ?? props.session.id}
diff --git a/web/src/components/SessionList.tsx b/web/src/components/SessionList.tsx index e46f93fa..47fa34c9 100644 --- a/web/src/components/SessionList.tsx +++ b/web/src/components/SessionList.tsx @@ -1,5 +1,5 @@ import { Badge } from '@/components/ui/badge' -import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card' +import { Card, CardDescription, CardHeader, CardTitle } from '@/components/ui/card' import type { SessionSummary } from '@/types/api' function PlusIcon(props: { className?: string }) { @@ -44,6 +44,9 @@ function BulbIcon(props: { className?: string }) { } function getSessionTitle(session: SessionSummary): string { + if (session.metadata?.name) { + return session.metadata.name + } if (session.metadata?.summary?.text) { return session.metadata.summary.text } @@ -114,14 +117,9 @@ export function SessionList(props: {
- {s.metadata?.host ? `Host: ${s.metadata.host}` : 'Host: (unknown)'} + {s.metadata?.path ?? s.id} - -
- {s.metadata?.path ?? s.id} -
-
))}