diff --git a/app/dashboard/company/page.tsx b/app/dashboard/company/page.tsx index a119edd..ef52c8c 100644 --- a/app/dashboard/company/page.tsx +++ b/app/dashboard/company/page.tsx @@ -3,6 +3,12 @@ import { useState, useEffect } from "react"; import { useSession } from "next-auth/react"; import { Company } from "../../../lib/types"; +import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; +import { Button } from "@/components/ui/button"; +import { Input } from "@/components/ui/input"; +import { Label } from "@/components/ui/label"; +import { Alert, AlertDescription } from "@/components/ui/alert"; +import { ShieldX, Settings, Save, Database, Bell } from "lucide-react"; export default function CompanySettingsPage() { const { data: session, status } = useSession(); @@ -74,110 +80,161 @@ export default function CompanySettingsPage() { // Loading state if (loading) { - return
You don't have permission to view company settings.
++ You don't have permission to view company settings. +
+- Leave blank to keep current password -
-+ Percentage of negative sentiment sessions to trigger alert (0-100) +
+- Percentage of negative sentiment sessions to trigger alert (0-100) -
-Loading session...
+Redirecting to login...
+Loading session details...
+Error: {error}
- - Back to Sessions List - +Error: {error}
+ + + +Session not found.
- - Back to Sessions List - +Session not found.
+ + + +
+ {(session.sessionId || session.id).slice(0, 8)}...
+
+ Start Time
++ {new Date(session.startTime).toLocaleString()} +
+Messages
++ {session.messages?.length || 0} +
+User ID
++ {session.userId || 'N/A'} +
+Duration
++ {session.endTime && session.startTime + ? `${Math.round( + (new Date(session.endTime).getTime() - new Date(session.startTime).getTime()) / 60000 + )} min` + : 'N/A'} +
+Loading sessions...
} - {error &&Error: {error}
} - - {!loading && !error && sessions.length === 0 && ( -- {debouncedSearchTerm - ? `No sessions found for "${debouncedSearchTerm}".` - : "No sessions found."} -
+ {/* Loading State */} + {loading && ( +- Start Time{/* (Local) */}:{" "} - {new Date(session.startTime).toLocaleString()} -
- {/*- Start Time (Raw API): {session.startTime.toString()} -
*/} - {session.category && ( -- Category:{" "} - {session.category} -
- )} - {session.language && ( -- Language:{" "} - - {session.language.toUpperCase()} - -
- )} - {session.initialMsg && ( -- Initial Message: {session.initialMsg} -
- )} - - View Details - + {/* Error State */} + {error && ( +
+ {(session.sessionId || session.id).slice(0, 8)}...
+
+ + {session.summary} +
+ ) : session.initialMsg ? ( ++ {session.initialMsg} +
+ ) : null} +Session ID
+
+ {session.id.slice(0, 8)}...
+
Start Time
++ {new Date(session.startTime).toLocaleString()} +
End Time
++ {new Date(session.endTime).toLocaleString()} +
+Category
+Language
+Country
+Sentiment
+Messages Sent
+{session.messagesSent || 0}
+Avg Response Time
+{session.avgResponseTime.toFixed(2)}s
+Escalated
+Forwarded to HR
+IP Address
+
+ {session.ipAddress}
+
+ AI Summary
+Initial Message
+