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

import { MessageManager } from "../../managers/message-manager";
import { InputManager } from "../../managers/input-manager";
import { UserController } from "../../controllers/user-controller";

/**
 * Handler for received message {@link Src/Messages/Received.ReceivedMessageNames.CLOSE_READING_MODE | CLOSE_READING_MODE}.\
 * This function disable all profiles related to close reading mode
 * @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 closeReadingModeHandler(
  this: MessageManager,
  _: string,
): Promise<void> {
  InputManager.current.disableAllBookPageOrReading();
  if (
    UserController.current.currentUser?.customParameters.size === 1 &&
    UserController.current.currentUser?.profiles.length === 0
  ) {
    MessageManager.current.sendDisableAllMessage();
  }
}

export { closeReadingModeHandler };
