diff --git a/static/js/api/loraApi.js b/static/js/api/loraApi.js index 387247fd..521e963e 100644 --- a/static/js/api/loraApi.js +++ b/static/js/api/loraApi.js @@ -86,10 +86,13 @@ function updateFolderTags(folders) { // Update the container folderTagsContainer.innerHTML = tagsHTML; - // Reattach click handlers + // Reattach click handlers and ensure the active tag is visible const tags = folderTagsContainer.querySelectorAll('.tag'); tags.forEach(tag => { tag.addEventListener('click', toggleFolder); + if (tag.dataset.folder === currentFolder) { + tag.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); + } }); } @@ -271,13 +274,11 @@ export async function resetAndReload(boolUpdateFolders = false) { await loadMoreLoras(boolUpdateFolders); } -export async function refreshLoras(boolShowToast = true) { +export async function refreshLoras() { try { state.loadingManager.showSimpleLoading('Refreshing loras...'); - await resetAndReload(true); - if (boolShowToast){ - showToast('Refresh complete', 'success'); - } + await resetAndReload(); + showToast('Refresh complete', 'success'); } catch (error) { console.error('Refresh failed:', error); showToast('Failed to refresh loras', 'error'); diff --git a/static/js/managers/DownloadManager.js b/static/js/managers/DownloadManager.js index aa606c3a..25850880 100644 --- a/static/js/managers/DownloadManager.js +++ b/static/js/managers/DownloadManager.js @@ -1,6 +1,8 @@ import { modalManager } from './ModalManager.js'; import { showToast } from '../utils/uiHelpers.js'; import { LoadingManager } from './LoadingManager.js'; +import { state } from '../state/index.js'; +import { resetAndReload } from '../api/loraApi.js'; export class DownloadManager { constructor() { @@ -183,13 +185,13 @@ export class DownloadManager { } // Construct relative path - let relativePath = ''; + let targetFolder = ''; if (this.selectedFolder) { - relativePath = this.selectedFolder; + targetFolder = this.selectedFolder; } if (newFolder) { - relativePath = relativePath ? - `${relativePath}/${newFolder}` : newFolder; + targetFolder = targetFolder ? + `${targetFolder}/${newFolder}` : newFolder; } try { @@ -218,7 +220,7 @@ export class DownloadManager { body: JSON.stringify({ download_url: downloadUrl, lora_root: loraRoot, - relative_path: relativePath + relative_path: targetFolder }) }); @@ -229,8 +231,9 @@ export class DownloadManager { showToast('Download completed successfully', 'success'); modalManager.closeModal('downloadModal'); - // Refresh the grid to show new model - window.refreshLoras(false); + // Update state and trigger reload with folder update + state.activeFolder = targetFolder; + await resetAndReload(true); // Pass true to update folders } catch (error) { showToast(error.message, 'error');