Cancel debounced metadata save before clearing chat

9438b5c4aaadbb2bf6594d2631df1c62c3c7dfbd

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

2 files changed, +11 -4Showing whitespace changes
public/script.js+2 -1
@@ -183,7 +183,7 @@ import {
183} from './scripts/utils.js';183} from './scripts/utils.js';
184import { debounce_timeout, IGNORE_SYMBOL } from './scripts/constants.js';184import { debounce_timeout, IGNORE_SYMBOL } from './scripts/constants.js';
185185
186import { doDailyExtensionUpdatesCheck, extension_settings, initExtensions, loadExtensionSettings, runGenerationInterceptors, saveMetadataDebounced } from './scripts/extensions.js';186import { cancelDebouncedMetadataSave, doDailyExtensionUpdatesCheck, extension_settings, initExtensions, loadExtensionSettings, runGenerationInterceptors, saveMetadataDebounced } from './scripts/extensions.js';
187import { COMMENT_NAME_DEFAULT, executeSlashCommandsOnChatInput, getSlashCommandsHelp, initDefaultSlashCommands, isExecutingCommandsFromChatInput, pauseScriptExecution, processChatSlashCommands, stopScriptExecution } from './scripts/slash-commands.js';187import { COMMENT_NAME_DEFAULT, executeSlashCommandsOnChatInput, getSlashCommandsHelp, initDefaultSlashCommands, isExecutingCommandsFromChatInput, pauseScriptExecution, processChatSlashCommands, stopScriptExecution } from './scripts/slash-commands.js';
188import {188import {
189 tag_map,189 tag_map,
@@ -1992,6 +1992,7 @@ export function cancelDebouncedChatSave() {
19921992
1993export async function clearChat() {1993export async function clearChat() {
1994 cancelDebouncedChatSave();1994 cancelDebouncedChatSave();
1995 cancelDebouncedMetadataSave();
1995 closeMessageEditor();1996 closeMessageEditor();
1996 extension_prompts = {};1997 extension_prompts = {};
1997 if (is_delete_mode) {1998 if (is_delete_mode) {
public/scripts/extensions.js+9 -3
@@ -58,14 +58,20 @@ let requiresReload = false;
58let stateChanged = false;58let stateChanged = false;
59let saveMetadataTimeout = null;59let saveMetadataTimeout = null;
6060
61export function cancelDebouncedMetadataSave() {
62 if (saveMetadataTimeout) {
63 console.debug('Debounced metadata save cancelled');
64 clearTimeout(saveMetadataTimeout);
65 saveMetadataTimeout = null;
66 }
67}
68
61export function saveMetadataDebounced() {69export function saveMetadataDebounced() {
62 const context = getContext();70 const context = getContext();
63 const groupId = context.groupId;71 const groupId = context.groupId;
64 const characterId = context.characterId;72 const characterId = context.characterId;
6573
66 if (saveMetadataTimeout) {74 cancelDebouncedMetadataSave();
67 clearTimeout(saveMetadataTimeout);
68 }
6975
70 saveMetadataTimeout = setTimeout(async () => {76 saveMetadataTimeout = setTimeout(async () => {
71 const newContext = getContext();77 const newContext = getContext();