Skip to content

Instantly share code, notes, and snippets.

@Allyedge
Created March 5, 2023 14:12
Show Gist options
  • Save Allyedge/463928f2a01076b6975d0c14d83df7dd to your computer and use it in GitHub Desktop.
Save Allyedge/463928f2a01076b6975d0c14d83df7dd to your computer and use it in GitHub Desktop.
import "phoenix_html";
// Establish Phoenix Socket and LiveView configuration.
import { Socket } from "phoenix";
import { LiveSocket } from "phoenix_live_view";
import topbar from "../vendor/topbar";
import InfiniteScroll from "./pagination/infinite_scroll";
let Hooks = {};
Hooks.InfiniteScroll = InfiniteScroll;
let csrfToken = document
.querySelector("meta[name='csrf-token']")
.getAttribute("content");
let liveSocket = new LiveSocket("/live", Socket, {
params: { _csrf_token: csrfToken },
hooks: Hooks,
});
// Show progress bar on live navigation and form submits
topbar.config({ barColors: { 0: "#29d" }, shadowColor: "rgba(0, 0, 0, .3)" });
window.addEventListener("phx:page-loading-start", (_info) => topbar.show(300));
window.addEventListener("phx:page-loading-stop", (_info) => topbar.hide());
// 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;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment