"use client"; import { ChatSession } from "../lib/types"; import LanguageDisplay from "./LanguageDisplay"; import CountryDisplay from "./CountryDisplay"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; import { Separator } from "@/components/ui/separator"; import { ExternalLink } from "lucide-react"; interface SessionDetailsProps { session: ChatSession; } /** * Component to display session details with formatted country and language names */ export default function SessionDetails({ session }: SessionDetailsProps) { // Helper function to format category names const formatCategory = (category: string) => { if (category === 'UNRECOGNIZED_OTHER' || category === 'ACCESS_LOGIN') { return null; // Don't show these internal enum values } return category.replace(/_/g, ' ').toLowerCase().replace(/\b\w/g, l => l.toUpperCase()); }; return ( Session Information

Session ID

{session.id.slice(0, 8)}...

Start Time

{new Date(session.startTime).toLocaleString()}

{session.endTime && (

End Time

{new Date(session.endTime).toLocaleString()}

)} {session.category && formatCategory(session.category) && (

Category

{formatCategory(session.category)}
)} {session.language && (

Language

{session.language.toUpperCase()}
)} {session.country && (

Country

{session.country}
)}
{session.sentiment !== null && session.sentiment !== undefined && (

Sentiment

{session.sentiment.charAt(0).toUpperCase() + session.sentiment.slice(1)}
)}

Messages Sent

{session.messagesSent || 0}

{session.avgResponseTime !== null && session.avgResponseTime !== undefined && (

Avg Response Time

{session.avgResponseTime.toFixed(2)}s

)} {session.escalated !== null && session.escalated !== undefined && (

Escalated

{session.escalated ? "Yes" : "No"}
)} {session.forwardedHr !== null && session.forwardedHr !== undefined && (

Forwarded to HR

{session.forwardedHr ? "Yes" : "No"}
)} {session.ipAddress && (

IP Address

{session.ipAddress}
)}
{(session.summary || session.initialMsg) && } {session.summary && (

AI Summary

{session.summary}
)} {!session.summary && session.initialMsg && (

Initial Message

"{session.initialMsg}"
)} {session.fullTranscriptUrl && ( <>
View Full Transcript
)}
); }