Source: settings.js

/**
 * This file holds the event for opening the settings frame.
 * 
 * @module scripts/events/main/settings
 */

import RequestHandler from "../../request_handler.js";
import PageHandler from "../../page_handler.js";
import EventHandler from "../../event_handler.js";

/**
 * Opens the settings frame.
 * 
 * @function settings_event
 * 
 * @param {HTMLElement} target            - Is the targeted UI element that was clicked.
 * @param {object} args                   - The data attributes of the targeted element.
 * @param {RequestHandler} requestHandler - The handler for HTTP requests.
 * @param {PageHandler} pageHandler       - The handler for UI updates.
 * @param {EventHandler} eventHandler     - The handler for the events.
 */
function settings_event(target, args, requestHandler, pageHandler, eventHandler) {

    if (pageHandler.getIsFrameLoaded(args)) {

        pageHandler.openSettingsFrame(null);
        eventHandler.isHandlingEvent = false;

        return;

    }

    requestHandler.GET("/api/config", [], (res) => {

        if (res.type) {

            pageHandler.openSettingsFrame(res.payload);

        } else {

            pageHandler.addError(res.error);

        }

        eventHandler.isHandlingEvent = false;

    });

}

export default settings_event;