diff --git a/public/script.js b/public/script.js index e3f5434c5..234da171b 100644 --- a/public/script.js +++ b/public/script.js @@ -2276,10 +2276,12 @@ function getMessageFromTemplate({ * @param {number} messageId Message ID * @param {object} message Message object */ -export function updateMessageBlock(messageId, message) { +export function updateMessageBlock(messageId, message, { rerenderMessage = true } = {}) { const messageElement = $(`#chat [mesid="${messageId}"]`); - const text = message?.extra?.display_text ?? message.mes; - messageElement.find('.mes_text').html(messageFormatting(text, message.name, message.is_system, message.is_user, messageId, {}, false)); + if (rerenderMessage) { + const text = message?.extra?.display_text ?? message.mes; + messageElement.find('.mes_text').html(messageFormatting(text, message.name, message.is_system, message.is_user, messageId, {}, false)); + } messageElement.find('.mes_reasoning').html(messageFormatting(message.extra?.reasoning ?? '', '', false, false, messageId, {}, true)); messageElement.toggleClass('reasoning', !!message.extra?.reasoning); addCopyToCodeBlocks(messageElement); diff --git a/public/scripts/reasoning.js b/public/scripts/reasoning.js index 0f19dd548..ca11dfd7b 100644 --- a/public/scripts/reasoning.js +++ b/public/scripts/reasoning.js @@ -401,7 +401,7 @@ function setReasoningEventHandlers() { }); $(document).on('click', '.mes_edit_add_reasoning', async function () { - const { message, messageId } = getMessageFromJquery(this); + const { message, messageId, messageBlock } = getMessageFromJquery(this); if (!message?.extra) { return; } @@ -412,7 +412,8 @@ function setReasoningEventHandlers() { } message.extra.reasoning = PromptReasoning.REASONING_PLACEHOLDER; - updateMessageBlock(messageId, message); + updateMessageBlock(messageId, message, { rerenderMessage: false }); + messageBlock.find('.mes_reasoning_edit').trigger('click'); await saveChatConditional(); }); @@ -426,13 +427,15 @@ function setReasoningEventHandlers() { return; } - const { message, messageId } = getMessageFromJquery(this); + const { message, messageId, messageBlock } = getMessageFromJquery(this); if (!message?.extra) { return; } message.extra.reasoning = ''; await saveChatConditional(); updateMessageBlock(messageId, message); + const textarea = messageBlock.find('.reasoning_edit_textarea'); + textarea.remove(); }); $(document).on('pointerup', '.mes_reasoning_copy', async function () {