From 208e0897614b7bba6a67153d45872312233dedb5 Mon Sep 17 00:00:00 2001 From: ThisIsPIRI Date: Fri, 12 Apr 2024 16:03:50 +0900 Subject: [PATCH] Replace hideChatMessage with hideChatMessageRange --- public/scripts/chats.js | 56 +++++++++++--------------------- public/scripts/slash-commands.js | 25 ++------------ 2 files changed, 22 insertions(+), 59 deletions(-) diff --git a/public/scripts/chats.js b/public/scripts/chats.js index 41e54fd48..17e366786 100644 --- a/public/scripts/chats.js +++ b/public/scripts/chats.js @@ -44,47 +44,29 @@ function isConvertible(type) { } /** - * Mark message as hidden (system message). - * @param {number} messageId Message ID - * @param {JQuery} messageBlock Message UI element + * Mark a range of messages as hidden ("is_system") or not. + * @param {number} start Starting message ID + * @param {number} end Ending message ID (inclusive) + * @param {boolean} unhide If true, unhide the messages instead. * @returns */ -export async function hideChatMessage(messageId, messageBlock) { - const chatId = getCurrentChatId(); +export async function hideChatMessageRange(start, end, unhide) { + if (!getCurrentChatId()) return; - if (!chatId || isNaN(messageId)) return; + if (isNaN(start)) return; + if (!end) end = start; + const hide = !unhide; - const message = chat[messageId]; + for (let messageId = start; messageId <= end; messageId++) { + const message = chat[messageId]; + if (!message) continue; - if (!message) return; + const messageBlock = $(`.mes[mesid="${messageId}"]`); + if (!messageBlock.length) continue; - message.is_system = true; - messageBlock.attr('is_system', String(true)); - - // Reload swipes. Useful when a last message is hidden. - hideSwipeButtons(); - showSwipeButtons(); - - saveChatDebounced(); -} - -/** - * Mark message as visible (non-system message). - * @param {number} messageId Message ID - * @param {JQuery} messageBlock Message UI element - * @returns - */ -export async function unhideChatMessage(messageId, messageBlock) { - const chatId = getCurrentChatId(); - - if (!chatId || isNaN(messageId)) return; - - const message = chat[messageId]; - - if (!message) return; - - message.is_system = false; - messageBlock.attr('is_system', String(false)); + message.is_system = hide; + messageBlock.attr('is_system', String(hide)); + } // Reload swipes. Useful when a last message is hidden. hideSwipeButtons(); @@ -476,13 +458,13 @@ jQuery(function () { $(document).on('click', '.mes_hide', async function () { const messageBlock = $(this).closest('.mes'); const messageId = Number(messageBlock.attr('mesid')); - await hideChatMessage(messageId, messageBlock); + await hideChatMessageRange(messageId); }); $(document).on('click', '.mes_unhide', async function () { const messageBlock = $(this).closest('.mes'); const messageId = Number(messageBlock.attr('mesid')); - await unhideChatMessage(messageId, messageBlock); + await hideChatMessageRange(messageId, messageId, true); }); $(document).on('click', '.mes_file_delete', async function () { diff --git a/public/scripts/slash-commands.js b/public/scripts/slash-commands.js index 8130488e7..9e2d853d9 100644 --- a/public/scripts/slash-commands.js +++ b/public/scripts/slash-commands.js @@ -38,7 +38,7 @@ import { this_chid, } from '../script.js'; import { getMessageTimeStamp } from './RossAscends-mods.js'; -import { hideChatMessage, unhideChatMessage } from './chats.js'; +import { hideChatMessageRange } from './chats.js'; import { getContext, saveMetadataDebounced } from './extensions.js'; import { getRegexedString, regex_placement } from './extensions/regex/engine.js'; import { findGroupMemberId, groups, is_group_generating, openGroupById, resetSelectedGroup, saveGroupChat, selected_group } from './group-chats.js'; @@ -917,16 +917,7 @@ async function hideMessageCallback(_, arg) { return; } - for (let messageId = range.start; messageId <= range.end; messageId++) { - const messageBlock = $(`.mes[mesid="${messageId}"]`); - - if (!messageBlock.length) { - console.warn(`WARN: No message found with ID ${messageId}`); - return; - } - - await hideChatMessage(messageId, messageBlock); - } + await hideChatMessageRange(range.start, range.end, false); } async function unhideMessageCallback(_, arg) { @@ -942,17 +933,7 @@ async function unhideMessageCallback(_, arg) { return ''; } - for (let messageId = range.start; messageId <= range.end; messageId++) { - const messageBlock = $(`.mes[mesid="${messageId}"]`); - - if (!messageBlock.length) { - console.warn(`WARN: No message found with ID ${messageId}`); - return ''; - } - - await unhideChatMessage(messageId, messageBlock); - } - + await hideChatMessageRange(range.start, range.end, true); return ''; }