Skip to main content
Use phx-update="ignore" so LiveView does not re-render the agent element.
<body>
  <%= @inner_content %>

  <div phx-update="ignore">
    <char-agent id="char-widget" publishable-key="pk_live_..."></char-agent>
  </div>

  <script>
    window.addEventListener("phx:page-loading-stop", () => {
      const agent = document.getElementById("char-widget");
      const idToken = window.currentUserIdToken;
      if (idToken) {
        agent.connect({ publishableKey: "pk_live_...", idToken });
      }
    });
  </script>
</body>