diff --git a/public/index.html b/public/index.html index f76de0483..0e9331d1c 100644 --- a/public/index.html +++ b/public/index.html @@ -1756,8 +1756,6 @@ } }); async function generateGroupWrapper() { - $('#chat .typing_indicator').remove(); - if (online_status === 'no_connection') { is_group_generating = false; is_send_press = false; @@ -1783,17 +1781,27 @@ messagesBefore++; } + let typingIndicator = $('#chat .typing_indicator'); + + if (typingIndicator.length === 0){ + typingIndicator = $('#typing_indicator_template .typing_indicator').clone(); + typingIndicator.hide(); + $('#chat').append(typingIndicator); + } + // now the real generation begins: cycle through every character for (const chId of activatedMembers) { this_chid = chId; name2 = characters[chId].name; - const typingIndicator = $('#typing_indicator_template .typing_indicator').clone(); - typingIndicator.find('.typing_indicator_name').text(characters[chId].name); - await Generate('group_chat'); + // update indicator and scroll down + typingIndicator.find('.typing_indicator_name').text(characters[chId].name); $('#chat').append(typingIndicator); + typingIndicator.fadeTo(250, 1, function() { + typingIndicator.get(0).scrollIntoView({behavior: 'smooth'}); + }); while (true) { // check if message generated already @@ -1805,13 +1813,14 @@ } } - $('#chat .typing_indicator').remove(); + // hide and reapply the indicator to the bottom of the list + typingIndicator.fadeTo(250, 0); + $('#chat').append(typingIndicator); } } finally { is_group_generating = false; is_send_press = false; - $('#chat .typing_indicator').remove(); } } function activateMembers(members, input) { @@ -2867,7 +2876,7 @@ }); // this function hides the input form, and shows the delete/cancel buttons fro deleting messages from chat $( "#option_delete_mes" ).click(function() { - if(this_chid != undefined && !is_send_press){ + if(this_chid != undefined && !is_send_press || (selected_group && !is_group_generating)){ $('#dialogue_del_mes').css('display','block'); $('#send_form').css('display','none'); $('.del_checkbox').each(function(){ @@ -2909,7 +2918,11 @@ $(".mes[mesid='"+this_del_mes+"']").remove(); chat.length = this_del_mes; count_view_mes = this_del_mes; - saveChat(); + if (selected_group) { + saveGroupChat(selected_group); + } else { + saveChat(); + } var $textchat = $('#chat'); $textchat.scrollTop($textchat[0].scrollHeight); }