/**
* This file acts as the main entry point for the client logic.
*
* @module scripts/main
*/
import RequestHandler from "./request_handler.js";
import EventHandler from "./event_handler.js";
import PageHandler from "./page_handler.js";
import SocketHandler from "./socket_handler.js";
/**
* Is executed as a result of the page loading.
*
* @function window.addEventListener
*
* @param {string} type - Defines the type of event to catch.
* @param {Function} listener - Defines what should happen when the event is triggered.
*/
window.addEventListener('DOMContentLoaded', () => {
const requestHandler = new RequestHandler();
const pageHandler = new PageHandler();
const eventHandler = new EventHandler(requestHandler, pageHandler);
const socketHandler = new SocketHandler(requestHandler, pageHandler);
socketHandler.createConnection();
/**
* Is executed as a result of the user clicking the page.
*
* @function document.addEventListener
*
* @param {string} type - Defines the type of event to catch.
* @param {Function} listener - Defines what should happen when the event is triggered.
*/
document.addEventListener('click', (e) => {
let target = e.target;
let dataAttributes = pageHandler.getDataAttributes(target);
let eventTag = target.getAttribute("data-event");
if (eventTag != null) eventHandler.handleEvent(target, eventTag, dataAttributes);
});
});