Fix issues with reasoning add/delete
| @@ -2276,10 +2276,12 @@ function getMessageFromTemplate({ | |||
| 2276 | * @param {number} messageId Message ID | 2276 | * @param {number} messageId Message ID |
| 2277 | * @param {object} message Message object | 2277 | * @param {object} message Message object |
| 2278 | */ | 2278 | */ |
| 2279 | export function updateMessageBlock(messageId, message) { | 2279 | export function updateMessageBlock(messageId, message, { rerenderMessage = true } = {}) { |
| 2280 | const messageElement = $(`#chat [mesid="${messageId}"]`); | 2280 | const messageElement = $(`#chat [mesid="${messageId}"]`); |
| 2281 | if (rerenderMessage) { | ||
| 2281 | const text = message?.extra?.display_text ?? message.mes; | 2282 | const text = message?.extra?.display_text ?? message.mes; |
| 2282 | messageElement.find('.mes_text').html(messageFormatting(text, message.name, message.is_system, message.is_user, messageId, {}, false)); | 2283 | messageElement.find('.mes_text').html(messageFormatting(text, message.name, message.is_system, message.is_user, messageId, {}, false)); |
| 2284 | } | ||
| 2283 | messageElement.find('.mes_reasoning').html(messageFormatting(message.extra?.reasoning ?? '', '', false, false, messageId, {}, true)); | 2285 | messageElement.find('.mes_reasoning').html(messageFormatting(message.extra?.reasoning ?? '', '', false, false, messageId, {}, true)); |
| 2284 | messageElement.toggleClass('reasoning', !!message.extra?.reasoning); | 2286 | messageElement.toggleClass('reasoning', !!message.extra?.reasoning); |
| 2285 | addCopyToCodeBlocks(messageElement); | 2287 | addCopyToCodeBlocks(messageElement); |
| @@ -401,7 +401,7 @@ function setReasoningEventHandlers() { | |||
| 401 | }); | 401 | }); |
| 402 | 402 | ||
| 403 | $(document).on('click', '.mes_edit_add_reasoning', async function () { | 403 | $(document).on('click', '.mes_edit_add_reasoning', async function () { |
| 404 | const { message, messageId } = getMessageFromJquery(this); | 404 | const { message, messageId, messageBlock } = getMessageFromJquery(this); |
| 405 | if (!message?.extra) { | 405 | if (!message?.extra) { |
| 406 | return; | 406 | return; |
| 407 | } | 407 | } |
| @@ -412,7 +412,8 @@ function setReasoningEventHandlers() { | |||
| 412 | } | 412 | } |
| 413 | 413 | ||
| 414 | message.extra.reasoning = PromptReasoning.REASONING_PLACEHOLDER; | 414 | message.extra.reasoning = PromptReasoning.REASONING_PLACEHOLDER; |
| 415 | updateMessageBlock(messageId, message); | 415 | updateMessageBlock(messageId, message, { rerenderMessage: false }); |
| 416 | messageBlock.find('.mes_reasoning_edit').trigger('click'); | ||
| 416 | await saveChatConditional(); | 417 | await saveChatConditional(); |
| 417 | }); | 418 | }); |
| 418 | 419 | ||
| @@ -426,13 +427,15 @@ function setReasoningEventHandlers() { | |||
| 426 | return; | 427 | return; |
| 427 | } | 428 | } |
| 428 | 429 | ||
| 429 | const { message, messageId } = getMessageFromJquery(this); | 430 | const { message, messageId, messageBlock } = getMessageFromJquery(this); |
| 430 | if (!message?.extra) { | 431 | if (!message?.extra) { |
| 431 | return; | 432 | return; |
| 432 | } | 433 | } |
| 433 | message.extra.reasoning = ''; | 434 | message.extra.reasoning = ''; |
| 434 | await saveChatConditional(); | 435 | await saveChatConditional(); |
| 435 | updateMessageBlock(messageId, message); | 436 | updateMessageBlock(messageId, message); |
| 437 | const textarea = messageBlock.find('.reasoning_edit_textarea'); | ||
| 438 | textarea.remove(); | ||
| 436 | }); | 439 | }); |
| 437 | 440 | ||
| 438 | $(document).on('pointerup', '.mes_reasoning_copy', async function () { | 441 | $(document).on('pointerup', '.mes_reasoning_copy', async function () { |