/**
 * @mergeTarget
 * @module Src/Messages/Received/Handlers
 */

import { MessageManager } from "../../managers/message-manager";

let lisioBackLoad: boolean = false;

/**
 * Handler for received message {@link Src/Messages/Received.ReceivedMessageNames.LISIO_FRONT_LOADED | LISIO_FRONT_LOADED}.\
 * @async
 * @param {MessageManager} this - Context of {@link Src/Managers.MessageManager | MessageManager}
 * @param {string} _ - Additional datas sent by client script
 * @returns Returns a promise containing nothing
 * @source
 */
async function lisioFrontLoadedHandler(
  this: MessageManager,
  _: string,
): Promise<void> {
  if (document.readyState === "complete" && lisioBackLoad === false) {
    lisioBackLoad = true;
    this.sendInitFrontMesssage();
  } else {
    document.addEventListener("readystatechange", (_) => {
      if (document.readyState === "complete" && lisioBackLoad === false) {
        this.sendInitFrontMesssage();
      }
    });
  }
}

export { lisioFrontLoadedHandler };
