import { useKeyboardShortcuts } from '$lib/hooks/use-keyboard-shortcuts.svelte';
import { conversationsStore, conversations } from '$lib/stores/conversations.svelte';
import { chatStore } from '$lib/stores/chat.svelte';
+ import { config } from '$lib/stores/settings.svelte';
import { RouterService } from '$lib/services/router.service';
import { isMobile } from '$lib/stores/viewport.svelte';
import { TooltipSide } from '$lib/enums';
const isStripExpanded = $derived(isExpandedMode || hoveredTooltip !== null);
const isOnMobile = $derived(isMobile.current);
+ const alwaysShowOnDesktop = $derived(config().alwaysShowSidebarOnDesktop as boolean);
+
+ // Keep the sidebar expanded on desktop when the user pins it open
+ $effect(() => {
+ if (alwaysShowOnDesktop && !isOnMobile) {
+ isExpandedMode = true;
+ }
+ });
function toggleExpandedMode() {
isExpandedMode = !isExpandedMode;
/>
</div>
- {#if isExpandedMode || isOnMobile}
+ {#if isOnMobile || (isExpandedMode && !alwaysShowOnDesktop)}
<div
class="flex items-center transition-all duration-150 ease-out {isMobile.current &&
!isExpandedMode
import { SETTINGS_KEYS } from '$lib/constants';
let { children } = $props();
- let alwaysShowSidebarOnDesktop = $derived(config().alwaysShowSidebarOnDesktop);
- let isDesktop = $derived(!isMobile.current);
let innerHeight = $state<number | undefined>();
let innerWidth = $state(browser ? window.innerWidth : 0);
updateFavicon();
});
- $effect(() => {
- if (alwaysShowSidebarOnDesktop && isDesktop) {
- return;
- }
- });
-
// Initialize server properties on app load (run once)
$effect(() => {
// Only fetch if we don't already have props