diff --git a/public/scripts/extensions.js b/public/scripts/extensions.js index 93bf315c0..51b985832 100644 --- a/public/scripts/extensions.js +++ b/public/scripts/extensions.js @@ -1,4 +1,4 @@ -import { callPopup, eventSource, event_types, extension_prompt_types, saveSettings, saveSettingsDebounced } from "../script.js"; +import { callPopup, eventSource, event_types, saveSettings, saveSettingsDebounced } from "../script.js"; import { isSubsetOf, debounce } from "./utils.js"; export { getContext, @@ -69,6 +69,20 @@ const getContext = () => window['SillyTavern'].getContext(); const getApiUrl = () => extension_settings.apiUrl; let connectedToApi = false; +function showHideExtensionsMenu() { + const hasMenuItems = $('#extensionsMenu').children().length > 0; + + // We have menu items, so we can stop checking + if (hasMenuItems) { + clearInterval(menuInterval); + } + + $('#extensionsMenuButton').toggle(hasMenuItems); +} + +// Periodically check for new extensions +const menuInterval = setInterval(showHideExtensionsMenu, 1000); + async function doExtrasFetch(endpoint, args) { if (!args) { args = {} @@ -219,7 +233,7 @@ function autoConnectInputHandler() { function addExtensionsButtonAndMenu() { const buttonHTML = - `
`; + ``; const extensionsMenuHTML = ``; $(document.body).append(extensionsMenuHTML);