Skip to content

Commit 975c9f9

Browse files
committed
refac
1 parent d7f3399 commit 975c9f9

1 file changed

Lines changed: 19 additions & 0 deletions

File tree

src/lib/components/chat/SettingsModal.svelte

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
<script lang="ts">
2+
import { browser } from '$app/environment';
23
import { getContext, onMount, tick } from 'svelte';
34
import type { Writable } from 'svelte/store';
45
import { toast } from 'svelte-sonner';
@@ -783,6 +784,8 @@
783784
} else if (filteredSettings.length > 0 && !filteredSettings.includes(selectedTab)) {
784785
selectedTab = filteredSettings[0];
785786
}
787+
788+
scrollToSelectedTab();
786789
};
787790
788791
const saveSettings = async (updated: Record<string, any>) => {
@@ -823,10 +826,26 @@
823826
}`;
824827
825828
let selectedTab = 'general';
829+
const scrollToSelectedTab = async () => {
830+
if (!browser || !modalShow || !selectedTab) {
831+
return;
832+
}
833+
834+
await tick();
835+
const tabElement = document.querySelector<HTMLElement>(
836+
'#settings-tabs-container [role="tab"][aria-selected="true"]'
837+
);
838+
tabElement?.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'start' });
839+
};
840+
826841
$: if ($user?.role !== 'admin' && isAdminTab(selectedTab)) {
827842
selectedTab = 'general';
828843
}
829844
845+
$: if (modalShow && selectedTab) {
846+
scrollToSelectedTab();
847+
}
848+
830849
onMount(() => {
831850
availableSettings = getAvailableSettings();
832851
setFilteredSettings();

0 commit comments

Comments
 (0)