diff --git a/public/script.js b/public/script.js index 3cd162c30..36c5cef98 100644 --- a/public/script.js +++ b/public/script.js @@ -8746,11 +8746,17 @@ function formatSwipeCounter(current, total) { return `${current}\u200b/\u200b${total}`; } -function swipe_left() { // when we swipe left..but no generation. +/** + * Handles the swipe to the left event. + * @param {JQuery.Event} _event Event. + * @param {object} params Additional parameters. + * @param {string} [params.source] The source of the swipe event. + * @param {boolean} [params.repeated] Is the swipe event repeated. + */ +function swipe_left(_event, { source, repeated } = {}) { if (chat.length - 1 === Number(this_edit_mes_id)) { closeMessageEditor(); } - if (isStreamingEnabled() && streamingProcessor) { streamingProcessor.onStopStreaming(); } @@ -8758,6 +8764,11 @@ function swipe_left() { // when we swipe left..but no generation. // Make sure ad-hoc changes to extras are saved before swiping away syncMesToSwipe(); + // If the user is holding down the key and we're at the first swipe, don't do anything + if (source === 'keyboard' && repeated && chat[chat.length - 1].swipe_id === 0) { + return; + } + const swipe_duration = 120; const swipe_range = '700px'; chat[chat.length - 1]['swipe_id']--; @@ -8883,8 +8894,14 @@ function swipe_left() { // when we swipe left..but no generation. } } -// when we click swipe right button -const swipe_right = () => { +/** + * Handles the swipe to the right event. + * @param {JQuery.Event} _event Event. + * @param {object} params Additional parameters. + * @param {string} [params.source] The source of the swipe event. + * @param {boolean} [params.repeated] Is the swipe event repeated. + */ +function swipe_right(_event, { source, repeated } = {}) { if (chat.length - 1 === Number(this_edit_mes_id)) { closeMessageEditor(); } @@ -8917,6 +8934,10 @@ const swipe_right = () => { if (chat.length === 1 && chat[0]['swipe_id'] !== undefined && chat[0]['swipe_id'] === chat[0]['swipes'].length - 1) { // if swipe_right is called on the last alternate greeting, loop back around chat[0]['swipe_id'] = 0; } else { + // If the user is holding down the key and we're at the last swipe, don't do anything + if (source === 'keyboard' && repeated && chat[chat.length - 1].swipe_id === chat[chat.length - 1].swipes.length - 1) { + return; + } chat[chat.length - 1]['swipe_id']++; // make new slot in array } if (chat[chat.length - 1].extra) { @@ -9065,7 +9086,7 @@ const swipe_right = () => { }, }); } -}; +} export const CONNECT_API_MAP = { // Default APIs not contined inside text gen / chat gen diff --git a/public/scripts/RossAscends-mods.js b/public/scripts/RossAscends-mods.js index 0a2581e5f..769d87d15 100644 --- a/public/scripts/RossAscends-mods.js +++ b/public/scripts/RossAscends-mods.js @@ -1143,7 +1143,7 @@ export function initRossMods() { $('#shadow_select_chat_popup').css('display') === 'none' && !isInputElementInFocus() ) { - $('.swipe_left:last').click(); + $('.swipe_left:last').trigger('click', { source: 'keyboard', repeated: event.repeat }); return; } } @@ -1156,7 +1156,7 @@ export function initRossMods() { $('#shadow_select_chat_popup').css('display') === 'none' && !isInputElementInFocus() ) { - $('.swipe_right:last').click(); + $('.swipe_right:last').trigger('click', { source: 'keyboard', repeated: event.repeat }); return; } }