export function initWebSocketApp()

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.");
}