feat: Delete image swipes at once or one by one

This commit is contained in:
Cohee
2025-02-08 22:55:38 +02:00
parent 0bf18e7413
commit a2cfcd4ca6
2 changed files with 52 additions and 8 deletions

View File

@@ -621,21 +621,56 @@ async function enlargeMessageImage() {
} }
async function deleteMessageImage() { async function deleteMessageImage() {
const value = await callGenericPopup('<h3>Delete image from message?<br>This action can\'t be undone.</h3>', POPUP_TYPE.CONFIRM); const value = await callGenericPopup('<h3>Delete image from message?<br>This action can\'t be undone.</h3>', POPUP_TYPE.TEXT, '', {
okButton: t`Delete one`,
customButtons: [
{
text: t`Delete all`,
appendAtEnd: true,
result: POPUP_RESULT.CUSTOM1,
},
{
text: t`Cancel`,
appendAtEnd: true,
result: POPUP_RESULT.CANCELLED,
},
],
});
if (value !== POPUP_RESULT.AFFIRMATIVE) { if (!value) {
return; return;
} }
const mesBlock = $(this).closest('.mes'); const mesBlock = $(this).closest('.mes');
const mesId = mesBlock.attr('mesid'); const mesId = mesBlock.attr('mesid');
const message = chat[mesId]; const message = chat[mesId];
let isLastImage = true;
if (Array.isArray(message.extra.image_swipes)) {
const indexOf = message.extra.image_swipes.indexOf(message.extra.image);
if (indexOf > -1) {
message.extra.image_swipes.splice(indexOf, 1);
isLastImage = message.extra.image_swipes.length === 0;
if (!isLastImage) {
const newIndex = Math.min(indexOf, message.extra.image_swipes.length - 1);
message.extra.image = message.extra.image_swipes[newIndex];
}
}
}
if (isLastImage || value === POPUP_RESULT.CUSTOM1) {
delete message.extra.image; delete message.extra.image;
delete message.extra.inline_image; delete message.extra.inline_image;
delete message.extra.title; delete message.extra.title;
delete message.extra.append_title; delete message.extra.append_title;
delete message.extra.image_swipes;
mesBlock.find('.mes_img_container').removeClass('img_extra'); mesBlock.find('.mes_img_container').removeClass('img_extra');
mesBlock.find('.mes_img').attr('src', ''); mesBlock.find('.mes_img').attr('src', '');
} else {
appendMediaToMessage(message, mesBlock);
}
await saveChatConditional(); await saveChatConditional();
} }

View File

@@ -24,6 +24,15 @@ export const POPUP_RESULT = {
AFFIRMATIVE: 1, AFFIRMATIVE: 1,
NEGATIVE: 0, NEGATIVE: 0,
CANCELLED: null, CANCELLED: null,
CUSTOM1: 1001,
CUSTOM2: 1002,
CUSTOM3: 1003,
CUSTOM4: 1004,
CUSTOM5: 1005,
CUSTOM6: 1006,
CUSTOM7: 1007,
CUSTOM8: 1008,
CUSTOM9: 1009,
}; };
/** /**