Cancel debounced metadata save before clearing chat
| @@ -183,7 +183,7 @@ import { | |||
| 183 | } from './scripts/utils.js'; | 183 | } from './scripts/utils.js'; |
| 184 | import { debounce_timeout, IGNORE_SYMBOL } from './scripts/constants.js'; | 184 | import { debounce_timeout, IGNORE_SYMBOL } from './scripts/constants.js'; |
| 185 | 185 | ||
| 186 | import { doDailyExtensionUpdatesCheck, extension_settings, initExtensions, loadExtensionSettings, runGenerationInterceptors, saveMetadataDebounced } from './scripts/extensions.js'; | 186 | import { cancelDebouncedMetadataSave, doDailyExtensionUpdatesCheck, extension_settings, initExtensions, loadExtensionSettings, runGenerationInterceptors, saveMetadataDebounced } from './scripts/extensions.js'; |
| 187 | import { COMMENT_NAME_DEFAULT, executeSlashCommandsOnChatInput, getSlashCommandsHelp, initDefaultSlashCommands, isExecutingCommandsFromChatInput, pauseScriptExecution, processChatSlashCommands, stopScriptExecution } from './scripts/slash-commands.js'; | 187 | import { COMMENT_NAME_DEFAULT, executeSlashCommandsOnChatInput, getSlashCommandsHelp, initDefaultSlashCommands, isExecutingCommandsFromChatInput, pauseScriptExecution, processChatSlashCommands, stopScriptExecution } from './scripts/slash-commands.js'; |
| 188 | import { | 188 | import { |
| 189 | tag_map, | 189 | tag_map, |
| @@ -1992,6 +1992,7 @@ export function cancelDebouncedChatSave() { | |||
| 1992 | 1992 | ||
| 1993 | export async function clearChat() { | 1993 | export 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) { |
| @@ -58,14 +58,20 @@ let requiresReload = false; | |||
| 58 | let stateChanged = false; | 58 | let stateChanged = false; |
| 59 | let saveMetadataTimeout = null; | 59 | let saveMetadataTimeout = null; |
| 60 | 60 | ||
| 61 | export function cancelDebouncedMetadataSave() { | ||
| 62 | if (saveMetadataTimeout) { | ||
| 63 | console.debug('Debounced metadata save cancelled'); | ||
| 64 | clearTimeout(saveMetadataTimeout); | ||
| 65 | saveMetadataTimeout = null; | ||
| 66 | } | ||
| 67 | } | ||
| 68 | |||
| 61 | export function saveMetadataDebounced() { | 69 | export 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; |
| 65 | 73 | ||
| 66 | if (saveMetadataTimeout) { | 74 | cancelDebouncedMetadataSave(); |
| 67 | clearTimeout(saveMetadataTimeout); | ||
| 68 | } | ||
| 69 | 75 | ||
| 70 | saveMetadataTimeout = setTimeout(async () => { | 76 | saveMetadataTimeout = setTimeout(async () => { |
| 71 | const newContext = getContext(); | 77 | const newContext = getContext(); |