Optimize past swipe counters performance

This commit is contained in:
Cohee
2024-12-05 15:32:30 +00:00
parent 373a0ad321
commit 23a10fdc22
4 changed files with 18 additions and 9 deletions

View File

@ -4183,7 +4183,7 @@
</label> </label>
<label for="show_swipe_num_all_messages" class="checkbox_label" title="Display swipe numbers for all messages, not just the last." data-i18n="[title]Display swipe numbers for all messages, not just the last."> <label for="show_swipe_num_all_messages" class="checkbox_label" title="Display swipe numbers for all messages, not just the last." data-i18n="[title]Display swipe numbers for all messages, not just the last.">
<input id="show_swipe_num_all_messages" type="checkbox" /> <input id="show_swipe_num_all_messages" type="checkbox" />
<small data-i18n="Swipe # for All Messages">Swipe # for All Messages</small><i class="fa-solid fa-mobile-screen-button"></i> <small data-i18n="Swipe # for All Messages">Swipe # for All Messages</small>
</label> </label>
<label for="hotswapEnabled" class="checkbox_label" title="In the Character Management panel, show quick selection buttons for favorited characters." data-i18n="[title]In the Character Management panel, show quick selection buttons for favorited characters"> <label for="hotswapEnabled" class="checkbox_label" title="In the Character Management panel, show quick selection buttons for favorited characters." data-i18n="[title]In the Character Management panel, show quick selection buttons for favorited characters">
<input id="hotswapEnabled" type="checkbox" /> <input id="hotswapEnabled" type="checkbox" />

View File

@ -98,7 +98,6 @@ import {
resetMovableStyles, resetMovableStyles,
forceCharacterEditorTokenize, forceCharacterEditorTokenize,
applyPowerUserSettings, applyPowerUserSettings,
switchSwipeNumAllMessages,
} from './scripts/power-user.js'; } from './scripts/power-user.js';
import { import {
@ -7660,14 +7659,12 @@ export function showSwipeButtons() {
//allows for writing individual swipe counters for past messages //allows for writing individual swipe counters for past messages
const lastSwipeCounter = $('.last_mes .swipes-counter'); const lastSwipeCounter = $('.last_mes .swipes-counter');
lastSwipeCounter.text(swipeCounterText).show(); lastSwipeCounter.text(swipeCounterText).show();
switchSwipeNumAllMessages();
} }
export function hideSwipeButtons() { export function hideSwipeButtons() {
$('#chat').find('.swipe_right').hide(); chatElement.find('.swipe_right').hide();
$('#chat').find('.last_mes .swipes-counter').hide(); chatElement.find('.last_mes .swipes-counter').hide();
$('#chat').find('.swipe_left').hide(); chatElement.find('.swipe_left').hide();
} }
/** /**
@ -8538,6 +8535,8 @@ const swipe_right = () => {
} }
if (run_generate) { //hide swipe arrows while generating if (run_generate) { //hide swipe arrows while generating
this_div.css('display', 'none'); this_div.css('display', 'none');
const swipesCounter = currentMessage.find('.swipes-counter');
swipesCounter.hide();
} }
// handles animated transitions when swipe right, specifically height transitions between messages // handles animated transitions when swipe right, specifically height transitions between messages
if (run_generate || run_swipe_right) { if (run_generate || run_swipe_right) {

View File

@ -472,9 +472,9 @@ function switchCompactInputArea() {
$('#compact_input_area').prop('checked', power_user.compact_input_area); $('#compact_input_area').prop('checked', power_user.compact_input_area);
} }
export function switchSwipeNumAllMessages() { function switchSwipeNumAllMessages() {
$('#show_swipe_num_all_messages').prop('checked', power_user.show_swipe_num_all_messages); $('#show_swipe_num_all_messages').prop('checked', power_user.show_swipe_num_all_messages);
$('.mes:not(.last_mes) .swipes-counter').css('opacity', '').toggle(power_user.show_swipe_num_all_messages); $('body').toggleClass('swipeAllMessages', !!power_user.show_swipe_num_all_messages);
} }
var originalSliderValues = []; var originalSliderValues = [];

View File

@ -1044,6 +1044,16 @@ body .panelControlBar {
opacity: 0.3; opacity: 0.3;
} }
body:not(.swipeAllMessages) .mes:not(.last_mes) .swipes-counter {
display: none;
}
body.swipeAllMessages .mes:not(.last_mes) .swipes-counter {
/* Avoid expensive DOM queries */
opacity: 0.3 !important;
display: flex !important;
}
.swipe_left { .swipe_left {
right: auto; right: auto;
left: 20px; left: 20px;