"use client"; import React, { useState, useEffect } from "react"; import TopBar from "@/components/top-bar"; import ChecklistAndConfig from "@/components/checklist-and-config"; import SessionConfigurationPanel from "@/components/session-configuration-panel"; import Transcript from "@/components/transcript"; import FunctionCallsPanel from "@/components/function-calls-panel"; import { Item } from "@/components/types"; import handleRealtimeEvent from "@/lib/handle-realtime-event"; import PhoneNumberChecklist from "@/components/phone-number-checklist"; const CallInterface = () => { const [selectedPhoneNumber, setSelectedPhoneNumber] = useState(""); const [allConfigsReady, setAllConfigsReady] = useState(false); const [items, setItems] = useState([]); const [callStatus, setCallStatus] = useState("disconnected"); const [ws, setWs] = useState(null); useEffect(() => { if (allConfigsReady && !ws) { const newWs = new WebSocket("ws://localhost:8081/logs"); newWs.onopen = () => { console.log("Connected to logs websocket"); setCallStatus("connected"); }; newWs.onmessage = (event) => { const data = JSON.parse(event.data); console.log("Received logs event:", data); handleRealtimeEvent(data, setItems); }; newWs.onclose = () => { console.log("Logs websocket disconnected"); setWs(null); setCallStatus("disconnected"); }; setWs(newWs); } }, [allConfigsReady, ws]); return (
{/* Left Column */}
{ if (ws && ws.readyState === WebSocket.OPEN) { const updateEvent = { type: "session.update", session: { ...config, }, }; console.log("Sending update event:", updateEvent); ws.send(JSON.stringify(updateEvent)); } }} />
{/* Middle Column: Transcript */}
{/* Right Column: Function Calls */}
); }; export default CallInterface;