Prevent ephemeral message extra changes vanish upon swiping

This commit is contained in:
Cohee
2025-01-28 15:39:09 +00:00
parent 3a8a329b0f
commit 0c9b301a57
2 changed files with 23 additions and 0 deletions

View File

@ -42,6 +42,7 @@ import {
showMoreMessages,
stopGeneration,
substituteParams,
syncCurrentSwipeInfoExtras,
system_avatar,
system_message_types,
this_chid,
@ -2814,8 +2815,11 @@ async function addSwipeCallback(args, value) {
const newSwipeId = lastMessage.swipes.length - 1;
if (isTrueBoolean(args.switch)) {
// Make sure ad-hoc changes to extras are saved before swiping away
syncCurrentSwipeInfoExtras();
lastMessage.swipe_id = newSwipeId;
lastMessage.mes = lastMessage.swipes[newSwipeId];
lastMessage.extra = structuredClone(lastMessage.swipe_info?.[newSwipeId]?.extra ?? lastMessage.extra ?? {});
}
await saveChatConditional();