livebook/assets/js/app.js

61 lines
1.8 KiB
JavaScript
Raw Normal View History

2021-01-08 05:13:17 +08:00
import "../css/app.css";
import "remixicon/fonts/remixicon.css";
import "katex/dist/katex.min.css";
import "@fontsource/inter";
import "@fontsource/inter/500.css";
import "@fontsource/inter/600.css";
import "@fontsource/red-hat-text";
import "@fontsource/jetbrains-mono";
2021-01-08 03:55:45 +08:00
2021-01-08 05:13:17 +08:00
import "phoenix_html";
import { Socket } from "phoenix";
import { LiveSocket } from "phoenix_live_view";
import hooks from "./hooks";
import { morphdomOptions } from "./dom";
import { loadUserData } from "./lib/user";
import { loadAppAuthToken } from "./lib/app";
import { settingsStore } from "./lib/settings";
import { registerTopbar, registerGlobalEventHandlers } from "./events";
2021-01-08 04:16:54 +08:00
2021-01-08 05:13:17 +08:00
const csrfToken = document
.querySelector("meta[name='csrf-token']")
.getAttribute("content");
2022-11-30 07:26:28 +08:00
const liveSocket = new LiveSocket(
window.LIVEBOOK_BASE_URL_PATH + "/live",
Socket,
{
params: (liveViewName) => {
return {
_csrf_token: csrfToken,
// Pass the most recent user data to the LiveView in `connect_params`
user_data: loadUserData(),
app_auth_token: loadAppAuthToken(),
2022-11-30 07:26:28 +08:00
};
},
hooks: hooks,
dom: morphdomOptions,
}
);
2021-01-08 04:16:54 +08:00
// Show progress bar on live navigation and form submits
registerTopbar();
2022-02-03 22:05:16 +08:00
// Handle custom events dispatched with JS.dispatch/3
registerGlobalEventHandlers();
2022-02-03 22:05:16 +08:00
// Reflect global configuration in attributes to enable CSS rules
settingsStore.getAndSubscribe((settings) => {
document.body.setAttribute("data-editor-theme", settings.editor_theme);
2022-02-03 22:05:16 +08:00
});
2021-01-08 04:16:54 +08:00
// Connect if there are any LiveViews on the page
2021-01-08 05:13:17 +08:00
liveSocket.connect();
2021-01-08 04:16:54 +08:00
// Expose liveSocket on window for web console debug logs and latency simulation:
2021-01-08 04:16:54 +08:00
// >> liveSocket.enableDebug()
// >> liveSocket.enableLatencySim(1000) // enabled for duration of browser session
2021-01-08 04:16:54 +08:00
// >> liveSocket.disableLatencySim()
2021-01-08 05:13:17 +08:00
window.liveSocket = liveSocket;