animations

This commit is contained in:
N0\A
2025-10-30 08:41:03 +01:00
parent a3d382b1b7
commit eadbf18661
5 changed files with 385 additions and 142 deletions

View File

@@ -1,63 +1,57 @@
(function() {
// Configuration
const SSE_PORT = 8765;
const RECONNECT_DELAY = 5000; // 5 seconds
let eventSource = null;
let reconnectTimer = null;
function connect() {
// Clear any existing reconnect timer
if (reconnectTimer) {
clearTimeout(reconnectTimer);
reconnectTimer = null;
}
// Close existing connection
if (eventSource) {
eventSource.close();
}
// Connect to SSE server
const url = `${window.location.protocol}//${window.location.hostname}:${SSE_PORT}/events`;
eventSource = new EventSource(url);
eventSource.onmessage = function(event) {
try {
const data = JSON.parse(event.data);
if (data.type === 'reload') {
console.log('Repository updated, reloading page...');
// Hard reload to bypass cache
window.location.reload(true);
}
} catch (e) {
console.error('Error parsing SSE message:', e);
}
};
eventSource.onerror = function(error) {
console.log('SSE connection error, will reconnect...');
eventSource.close();
// Attempt to reconnect after delay
reconnectTimer = setTimeout(connect, RECONNECT_DELAY);
};
eventSource.onopen = function() {
console.log('Connected to auto-refresh service');
};
(function () {
const SSE_PORT = 8765;
const RECONNECT_DELAY = 5000; // miliseconds
let eventSource = null;
let reconnectTimer = null;
function connect() {
if (reconnectTimer) {
clearTimeout(reconnectTimer);
reconnectTimer = null;
}
// Start connection when page loads
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', connect);
} else {
connect();
if (eventSource) {
eventSource.close();
}
// Cleanup on page unload
window.addEventListener('beforeunload', function() {
if (eventSource) {
eventSource.close();
const url = `${window.location.protocol}//${window.location.hostname}:${SSE_PORT}/events`;
eventSource = new EventSource(url);
eventSource.onmessage = function (event) {
try {
const data = JSON.parse(event.data);
if (data.type === "reload") {
console.log("Repository updated, reloading page...");
// Hard reload to bypass cache
window.location.reload(true);
}
});
})();
} catch (e) {
console.error("Error parsing SSE message:", e);
}
};
eventSource.onerror = function (error) {
console.log("SSE connection error, will reconnect...");
eventSource.close();
// Attempt to reconnect
reconnectTimer = setTimeout(connect, RECONNECT_DELAY);
};
eventSource.onopen = function () {
console.log("Connected to auto-refresh service");
};
}
if (document.readyState === "loading") {
document.addEventListener("DOMContentLoaded", connect);
} else {
connect();
}
window.addEventListener("beforeunload", function () {
if (eventSource) {
eventSource.close();
}
});
})();