Better Akteure Logik

This commit is contained in:
Simon Martens
2025-09-22 22:27:06 +02:00
parent 9268402ebf
commit b579539e66
18 changed files with 495 additions and 435 deletions

View File

@@ -13,9 +13,9 @@ export class AkteureScrollspy extends HTMLElement {
connectedCallback() {
// Small delay to ensure DOM is fully rendered after HTMX swap
setTimeout(() => {
window.ExecuteNextSettle(() => {
this.initializeScrollspyAfterDelay();
}, 100);
});
}
initializeScrollspyAfterDelay() {

View File

@@ -90,6 +90,28 @@ function applyPageBackdrop() {
}
}
// Function queue system for HTMX settle events
let settleQueue = [];
// Global function to register functions for next settle event
window.ExecuteNextSettle = function(fn) {
if (typeof fn === 'function') {
settleQueue.push(fn);
}
};
// Execute and clear the queue
function executeSettleQueue() {
while (settleQueue.length > 0) {
const fn = settleQueue.shift();
try {
fn();
} catch (error) {
console.error('Error executing settle queue function:', error);
}
}
}
// Export functions for global access
window.enlargePage = enlargePage;
window.closeModal = closeModal;
@@ -123,6 +145,9 @@ function setup() {
// Update citation links after navigation
updateCitationLinks();
// Execute all queued functions
executeSettleQueue();
// Use shorter delay since afterSettle ensures DOM is ready
setTimeout(() => {
if (document.querySelector(".newspaper-page-container")) {