Merge pull request #3331 from qvink/emit_event_on_load_messages adding event after loading more messages in chat

a2f71d387fde9946e192165cd15c7afadc54b71b

Cohee <18619528+Cohee1207@users.noreply.github.com>

Signed
3 files changed, +9 -6Showing whitespace changes
public/script.js+6 -3
@@ -443,6 +443,7 @@ export const event_types = {
443 MESSAGE_DELETED: 'message_deleted',443 MESSAGE_DELETED: 'message_deleted',
444 MESSAGE_UPDATED: 'message_updated',444 MESSAGE_UPDATED: 'message_updated',
445 MESSAGE_FILE_EMBEDDED: 'message_file_embedded',445 MESSAGE_FILE_EMBEDDED: 'message_file_embedded',
446 MORE_MESSAGES_LOADED: 'more_messages_loaded',
446 IMPERSONATE_READY: 'impersonate_ready',447 IMPERSONATE_READY: 'impersonate_ready',
447 CHAT_CHANGED: 'chat_id_changed',448 CHAT_CHANGED: 'chat_id_changed',
448 GENERATION_AFTER_COMMANDS: 'GENERATION_AFTER_COMMANDS',449 GENERATION_AFTER_COMMANDS: 'GENERATION_AFTER_COMMANDS',
@@ -1829,7 +1830,7 @@ export async function replaceCurrentChat() {
1829 }1830 }
1830}1831}
18311832
1832export function showMoreMessages(messagesToLoad = null) {1833export async function showMoreMessages(messagesToLoad = null) {
1833 const firstDisplayedMesId = $('#chat').children('.mes').first().attr('mesid');1834 const firstDisplayedMesId = $('#chat').children('.mes').first().attr('mesid');
1834 let messageId = Number(firstDisplayedMesId);1835 let messageId = Number(firstDisplayedMesId);
1835 let count = messagesToLoad || power_user.chat_truncation || Number.MAX_SAFE_INTEGER;1836 let count = messagesToLoad || power_user.chat_truncation || Number.MAX_SAFE_INTEGER;
@@ -1859,6 +1860,8 @@ export function showMoreMessages(messagesToLoad = null) {
1859 const newHeight = $('#chat').prop('scrollHeight');1860 const newHeight = $('#chat').prop('scrollHeight');
1860 $('#chat').scrollTop(newHeight - prevHeight);1861 $('#chat').scrollTop(newHeight - prevHeight);
1861 }1862 }
1863
1864 await eventSource.emit(event_types.MORE_MESSAGES_LOADED);
1862}1865}
18631866
1864export async function printMessages() {1867export async function printMessages() {
@@ -11465,8 +11468,8 @@ jQuery(async function () {
11465 $('#avatar-and-name-block').slideToggle();11468 $('#avatar-and-name-block').slideToggle();
11466 });11469 });
1146711470
11468 $(document).on('mouseup touchend', '#show_more_messages', () => {11471 $(document).on('mouseup touchend', '#show_more_messages', async function () {
11469 showMoreMessages();11472 await showMoreMessages();
11470 });11473 });
1147111474
11472 $(document).on('click', '.open_characters_library', async function () {11475 $(document).on('click', '.open_characters_library', async function () {
public/scripts/power-user.js+1 -1
@@ -2534,7 +2534,7 @@ async function loadUntilMesId(mesId) {
2534 let target;2534 let target;
25352535
2536 while (getFirstDisplayedMessageId() > mesId && getFirstDisplayedMessageId() !== 0) {2536 while (getFirstDisplayedMessageId() > mesId && getFirstDisplayedMessageId() !== 0) {
2537 showMoreMessages();2537 await showMoreMessages();
2538 await delay(1);2538 await delay(1);
2539 target = $('#chat').find(`.mes[mesid=${mesId}]`);2539 target = $('#chat').find(`.mes[mesid=${mesId}]`);
25402540
public/scripts/slash-commands.js+2 -2
@@ -1968,8 +1968,8 @@ export function initDefaultSlashCommands() {
1968 SlashCommandParser.addCommandObject(SlashCommand.fromProps({1968 SlashCommandParser.addCommandObject(SlashCommand.fromProps({
1969 name: 'chat-render',1969 name: 'chat-render',
1970 helpString: 'Renders a specified number of messages into the chat window. Displays all messages if no argument is provided.',1970 helpString: 'Renders a specified number of messages into the chat window. Displays all messages if no argument is provided.',
1971 callback: (args, number) => {1971 callback: async (args, number) => {
1972 showMoreMessages(number && !isNaN(Number(number)) ? Number(number) : Number.MAX_SAFE_INTEGER);1972 await showMoreMessages(number && !isNaN(Number(number)) ? Number(number) : Number.MAX_SAFE_INTEGER);
1973 if (isTrueBoolean(String(args?.scroll ?? ''))) {1973 if (isTrueBoolean(String(args?.scroll ?? ''))) {
1974 $('#chat').scrollTop(0);1974 $('#chat').scrollTop(0);
1975 }1975 }