Files
partsERP/static/js/app.js

89 lines
1.9 KiB
JavaScript

/*
// Bundle css imports
import '../css/lib/reset.css';
import '../css/lib/typography.css';
import '../css/lib/variables.css';
import '../css/lib/utils.css';
import '../css/layouts/header.css';
import '../css/layouts/footer.css';
import '../css/layouts/table-main.css'
import '../css/components/button.css';
import '../css/components/card.css';
import '../css/components/dialog.css';
import '../css/components/form.css';
import '../css/components/modal.css';
import '../css/components/navigation.css';
import '../css/components/overlay.css';
import '../css/sections/store.css';
*/
// Main entry point for the application
'use strict';
// import API from './api.js';
import DOM from './dom.js';
import Router from './router.js';
class App {
constructor() {
this.dom = new DOM();
this.router = new Router();
}
initialize() {
this.setupEventListeners();
this.start();
}
setupEventListeners() {
// Global event listeners
// document.addEventListener('click', this.handleGlobalClick.bind(this));
// Add more global event listeners as needed
}
handleGlobalClick(event) {
// Handle global click events
}
start() {
// Additional startup logic
this.initPageCurrent();
}
initPageCurrent() {
/*
_pageCurrent = Router.getPageCurrent();
_pageCurrent.initialize();
*/
this.router.loadPageCurrent();
}
}
// Application instance
const app = new App();
// DOM ready handler
function domReady(fn) {
if (document.readyState !== 'loading') {
fn();
} else {
document.addEventListener('DOMContentLoaded', fn);
}
}
// Initialize and start the app when DOM is ready
domReady(() => {
app.initialize();
});
// Expose app to window for debugging (optional)
window.app = app;
// Export app if using modules
export default app;