Files
linkding/bookmarks/static/live-reload.js
2026-01-02 18:26:14 +01:00

45 lines
1.1 KiB
JavaScript

const RELOAD_URL = "/live_reload";
let eventSource = null;
let serverId = null;
function connect() {
console.debug("[live-reload] Connecting to", RELOAD_URL);
eventSource = new EventSource(RELOAD_URL);
eventSource.addEventListener("connected", (event) => {
const data = JSON.parse(event.data);
if (serverId && serverId !== data.server_id) {
console.log("[live-reload] Server restarted, reloading page");
window.location.reload();
return;
}
console.debug("[live-reload] Connected, server ID:", data.server_id);
serverId = data.server_id;
});
eventSource.addEventListener("file_change", (event) => {
const data = JSON.parse(event.data);
console.log("[live-reload] File changed:", data);
if (data.file_path.endsWith(".css") || data.file_path.endsWith(".js")) {
console.log("[live-reload] Asset changed, reloading page");
window.location.reload();
}
});
eventSource.onerror = (error) => {
console.debug("[live-reload] Disconnected", error);
eventSource.close();
eventSource = null;
// Reconnect after a delay
setTimeout(connect, 1000);
};
}
connect();