import { saveSettingsDebounced } from "../../../script.js"; import { getContext, extension_settings } from "../../extensions.js"; import { initScrollHeight, resetScrollHeight } from "../../utils.js"; export { MODULE_NAME }; const MODULE_NAME = 'quick-reply'; const UPDATE_INTERVAL = 1000; const defaultSettings = { quickReply1Mes: '', quickReply1Label: '', quickReply2Mes: '', quickReply2Label: '', quickReply3Mes: '', quickReply3Label: '', quickReply4Mes: '', quickReply4Label: '', quickReply5Mes: '', quickReply5Label: '', quickReplyEnabled: false, } async function loadSettings() { if (Object.keys(extension_settings.quickReply).length === 0) { Object.assign(extension_settings.quickReply, defaultSettings); } $('#quickReplyEnabled').prop('checked', extension_settings.quickReply.quickReplyEnabled); $('#quickReply1Mes').val(extension_settings.quickReply.quickReply1Mes).trigger('input'); $('#quickReply1Label').val(extension_settings.quickReply.quickReply1Label).trigger('input'); $('#quickReply2Mes').val(extension_settings.quickReply.quickReply2Mes).trigger('input'); $('#quickReply2Label').val(extension_settings.quickReply.quickReply2Label).trigger('input'); $('#quickReply3Mes').val(extension_settings.quickReply.quickReply3Mes).trigger('input'); $('#quickReply3Label').val(extension_settings.quickReply.quickReply3Label).trigger('input'); $('#quickReply4Mes').val(extension_settings.quickReply.quickReply4Mes).trigger('input'); $('#quickReply4Label').val(extension_settings.quickReply.quickReply4Label).trigger('input'); $('#quickReply5Mes').val(extension_settings.quickReply.quickReply5Mes).trigger('input'); $('#quickReply5Label').val(extension_settings.quickReply.quickReply5Label).trigger('input'); } function onQuickReplyInput(id) { extension_settings.quickReply[`quickReply${id}Mes`] = $(`#quickReply${id}Mes`).val(); $(`#quickReply${id}`).attr('title', ($(`#quickReply${id}Mes`).val())); resetScrollHeight($(`#quickReply${id}Mes`)); saveSettingsDebounced(); } function onQuickReplyLabelInput(id) { extension_settings.quickReply[`quickReply${id}Label`] = $(`#quickReply${id}Label`).val(); $(`#quickReply${id}`).text($(`#quickReply${id}Label`).val()); saveSettingsDebounced(); } async function onQuickReplyEnabledInput() { let isEnabled = $(this).prop('checked') extension_settings.quickReply.quickReplyEnabled = !!isEnabled; if (isEnabled === true) { $("#quickReplyBar").show(); } else { $("#quickReplyBar").hide(); } saveSettingsDebounced(); } async function sendQuickReply(id) { var prompt = extension_settings.quickReply[`${id}Mes`]; $("#send_textarea").val(prompt); $("#send_but").trigger('click'); } function addQuickReplyBar(numButtons) { var numButtons = 5; const quickReplyBarStartHtml = `