From 4998bc6df032a6033f13667077fd816c850981e6 Mon Sep 17 00:00:00 2001 From: Ronni Skansing Date: Wed, 3 Sep 2025 20:57:48 +0200 Subject: [PATCH] fix import modal scrolled to bottom Signed-off-by: Ronni Skansing --- frontend/src/routes/settings/+page.svelte | 50 ++++++++--------------- 1 file changed, 18 insertions(+), 32 deletions(-) diff --git a/frontend/src/routes/settings/+page.svelte b/frontend/src/routes/settings/+page.svelte index 7cd554b..9390b98 100644 --- a/frontend/src/routes/settings/+page.svelte +++ b/frontend/src/routes/settings/+page.svelte @@ -63,6 +63,7 @@ let importFile = null; let importResult = null; let isImportResultModalVisible = false; + let importModalContent = null; // Company context for import const appState = AppStateService.instance; @@ -190,8 +191,6 @@ } } - // License functionality removed - async function refreshSSO() { try { const res = await api.option.get('sso_login'); @@ -243,8 +242,6 @@ } }; - // License functionality removed - const onSubmitSSO = async () => { updateSSOError = ''; isSubmitting = true; @@ -264,28 +261,8 @@ } }; - // License modal functions removed - const openSSOModal = async (e) => { e.preventDefault(); - /* - updateSSOError = ''; - showIsLoading(); - try { - const res = await api.option.get('sso_login'); - if (!res.success) { - updateSSOError = res.error; - return; - } - const sso = JSON.parse(res.data.value); - ssoSettingsFormValues = sso; - } catch (e) { - addToast('Failed to get SSO options', 'Error'); - console.error('failed to get SSO options', e); - } finally { - hideIsLoading(); - } - */ isSSOModalVisible = true; }; @@ -320,11 +297,6 @@ return action; }; - /** - * @param {*} event - */ - // License file handling removed - /** * @param {*} event */ @@ -360,6 +332,12 @@ importFile = null; importResult = response.data; isImportResultModalVisible = true; + // reset scroll position to top when modal becomes visible + setTimeout(() => { + if (importModalContent) { + importModalContent.scrollTop = 0; + } + }, 0); // Reset file input const fileInput = document.querySelector('input[type="file"][name="importFile"]'); if (fileInput) /** @type {HTMLInputElement} */ (fileInput).value = ''; @@ -367,6 +345,12 @@ importError = response.error || 'Import failed'; importResult = response.data || null; isImportResultModalVisible = !!importResult; + // reset scroll position to top when modal becomes visible + setTimeout(() => { + if (importModalContent) { + importModalContent.scrollTop = 0; + } + }, 0); } } catch (error) { console.error('Import error:', error); @@ -527,7 +511,11 @@ {#if isImportResultModalVisible && importResult} -
+
{}} + bind:this={importModalContent} + >
@@ -755,8 +743,6 @@
{/if} - - {#if isSSOModalVisible}