in gemini/mcp/adk_multiagent_mcp_app/static/websocketApp.js [367:406]
export function initWebSocketApp() {
if (appInitialized) {
console.warn("WebSocket app already initialized. Skipping.");
return;
}
console.log("Initializing WebSocket application logic...");
// Find essential DOM elements
messageForm = document.getElementById("message-form");
messageInput = document.getElementById("message");
messagesDiv = document.getElementById("messages");
sendButton = document.getElementById("send-button");
const appTab = document.getElementById("app-tab-content"); // Container for error messages
// Critical check for UI elements
if (!messageForm || !messageInput || !messagesDiv || !sendButton) {
console.error("CRITICAL: One or more required app DOM elements not found!");
const errorMsg =
"<p class='system-status-message'><span class='error-text'>Initialization Error: Required UI elements missing. App cannot start.</span></p>";
if (appTab) {
const appContainer = appTab.querySelector(".app-container"); // Try to find inner container
if (appContainer) appContainer.innerHTML = errorMsg;
else appTab.innerHTML = errorMsg; // Fallback to replacing tab content
} else {
// Fallback if even the app tab is missing
alert(
"Initialization Error: App UI elements missing and app tab not found.",
);
}
return; // Stop initialization
}
console.log("App UI Elements successfully located.");
if (sendButton) sendButton.disabled = true; // Disable send until connected
appInitialized = true; // Mark as initialized
connectWebSocket(); // Start the connection process
console.log("WebSocket App module initialized and connection initiated.");
}