refactor: remove unnecessary DOMContentLoaded wrappers
Since main.js has 'defer' attribute, the DOM is guaranteed to be ready when modules execute. These wrappers are unnecessary. dashboard.ts: - Removed DOMContentLoaded wrapper, code runs directly - Event delegation setup runs immediately custom-section-builder.ts: - Removed DOMContentLoaded wrapper - initCustomSectionBuilder() called directly toast.ts: - Removed DOMContentLoaded wrapper - initializeToastSystem() called directly at top level - Removed dead Alpine.data registration (unused) search.ts: - Removed DOMContentLoaded wrapper - initializeSearch exported for use in header theme.ts: - Removed DOMContentLoaded wrapper - Functions now exported for use in header Alpine component
This commit is contained in:
@@ -651,6 +651,6 @@ function builderEscapeHtml(text: string): string {
|
||||
return div.innerHTML;
|
||||
}
|
||||
|
||||
document.addEventListener("DOMContentLoaded", initCustomSectionBuilder);
|
||||
initCustomSectionBuilder();
|
||||
|
||||
export { addBookToSelection, removeBookFromSelection };
|
||||
|
||||
@@ -425,7 +425,6 @@ function initDragAndDrop(): void {
|
||||
});
|
||||
}
|
||||
|
||||
document.addEventListener("DOMContentLoaded", () => {
|
||||
initDragAndDrop();
|
||||
|
||||
document.addEventListener("click", (e: Event) => {
|
||||
@@ -483,7 +482,6 @@ document.addEventListener("DOMContentLoaded", () => {
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
document.addEventListener("input", (e: Event) => {
|
||||
const target = e.target as HTMLElement;
|
||||
|
||||
+2
-3
@@ -303,10 +303,9 @@ function selectLibraryAndBook(libraryId: string, bookId: string): void {
|
||||
hideSearchResults();
|
||||
}
|
||||
|
||||
document.addEventListener("DOMContentLoaded", initializeSearch);
|
||||
|
||||
export { selectLibraryAndBook };
|
||||
export { selectLibraryAndBook, initializeSearch };
|
||||
|
||||
Alpine.data("search", () => ({
|
||||
selectLibraryAndBook,
|
||||
initializeSearch,
|
||||
}));
|
||||
|
||||
+6
-15
@@ -202,24 +202,15 @@ const updateWoodPanelingIndicators = (): void => {
|
||||
});
|
||||
};
|
||||
|
||||
// Auto-initialize when DOM is ready
|
||||
if (typeof document !== "undefined") {
|
||||
if (document.readyState === "loading") {
|
||||
document.addEventListener("DOMContentLoaded", () => {
|
||||
initializeTheme();
|
||||
loadWoodPaneling();
|
||||
updateWoodPanelingIndicators();
|
||||
});
|
||||
} else {
|
||||
initializeTheme();
|
||||
loadWoodPaneling();
|
||||
updateWoodPanelingIndicators();
|
||||
}
|
||||
}
|
||||
|
||||
Alpine.data("theme", () => ({
|
||||
applyTheme,
|
||||
changeTheme,
|
||||
changeWoodPaneling,
|
||||
initializeTheme,
|
||||
loadTheme,
|
||||
loadUserTheme,
|
||||
loadWoodPaneling,
|
||||
updateWoodPanelingIndicators,
|
||||
}));
|
||||
|
||||
export {
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import { Alpine } from "./alpine";
|
||||
// Toast notification system for backend errors
|
||||
// Displays toast notifications at the top of the page
|
||||
|
||||
@@ -216,24 +215,7 @@ const initializeToastSystem = (): void => {
|
||||
setupFetchInterceptor();
|
||||
};
|
||||
|
||||
// Auto-initialize when DOM is ready
|
||||
if (typeof document !== "undefined") {
|
||||
if (document.readyState === "loading") {
|
||||
document.addEventListener("DOMContentLoaded", initializeToastSystem);
|
||||
} else {
|
||||
initializeToastSystem();
|
||||
}
|
||||
}
|
||||
|
||||
// Export toast API for manual use
|
||||
Alpine.data("showToast", () => ({
|
||||
error: (message: string, duration?: number) =>
|
||||
showToast(message, "error", duration),
|
||||
success: (message: string, duration?: number) =>
|
||||
showToast(message, "success", duration),
|
||||
info: (message: string, duration?: number) =>
|
||||
showToast(message, "info", duration),
|
||||
}));
|
||||
|
||||
export { showToast };
|
||||
export type { ToastType };
|
||||
|
||||
Reference in New Issue
Block a user