import "../css/app.css"; import "phoenix_html"; import { Socket } from "phoenix"; import NProgress from "nprogress"; import { LiveSocket } from "phoenix_live_view"; import ContentEditable from "./content_editable"; import Cell from "./cell"; import Session from "./session"; import FocusOnUpdate from "./focus_on_update"; const Hooks = { ContentEditable, Cell, Session, FocusOnUpdate, }; const csrfToken = document .querySelector("meta[name='csrf-token']") .getAttribute("content"); const liveSocket = new LiveSocket("/live", Socket, { params: { _csrf_token: csrfToken }, hooks: Hooks, }); // Show progress bar on live navigation and form submits window.addEventListener("phx:page-loading-start", (info) => NProgress.start()); window.addEventListener("phx:page-loading-stop", (info) => NProgress.done()); // connect if there are any LiveViews on the page liveSocket.connect(); // expose liveSocket on window for web console debug logs and latency simulation: // >> liveSocket.enableDebug() // >> liveSocket.enableLatencySim(1000) // enabled for duration of browser session // >> liveSocket.disableLatencySim() window.liveSocket = liveSocket;