diff --git a/surfsense_web/components/layout/ui/icon-rail/SearchSpaceAvatar.tsx b/surfsense_web/components/layout/ui/icon-rail/SearchSpaceAvatar.tsx index 641e5f5af..c35d8c708 100644 --- a/surfsense_web/components/layout/ui/icon-rail/SearchSpaceAvatar.tsx +++ b/surfsense_web/components/layout/ui/icon-rail/SearchSpaceAvatar.tsx @@ -7,14 +7,12 @@ import { ContextMenu, ContextMenuContent, ContextMenuItem, - ContextMenuSeparator, ContextMenuTrigger, } from "@/components/ui/context-menu"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, - DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/tooltip"; @@ -157,7 +155,6 @@ export function SearchSpaceAvatar({ {tCommon("settings")} )} - {onSettings && onDelete && } {onDelete && isOwner && ( @@ -190,7 +187,7 @@ export function SearchSpaceAvatar({ {avatarButton} - {menuItems} + {menuItems} ); } @@ -208,14 +205,13 @@ export function SearchSpaceAvatar({ {tooltipContent} - + {onSettings && ( {tCommon("settings")} )} - {onSettings && onDelete && } {onDelete && isOwner && ( diff --git a/surfsense_web/components/layout/ui/tabs/TabBar.tsx b/surfsense_web/components/layout/ui/tabs/TabBar.tsx index f3c88bf6a..cefb79e43 100644 --- a/surfsense_web/components/layout/ui/tabs/TabBar.tsx +++ b/surfsense_web/components/layout/ui/tabs/TabBar.tsx @@ -20,7 +20,7 @@ interface TabBarProps { className?: string; } -// Pure scroll-target calculation (port of opencode's nextTabListScrollLeft). +// Pure scroll-target calculation for the tab list. // - When the list shrinks (a tab was closed), do not move the scroll. // - When the list overflows after growing, snap to the right edge so the new tab is visible. function nextTabListScrollLeft(input: { @@ -66,9 +66,8 @@ export function TabBar({ [closeTab, onTabSwitch] ); - // React to tab list growth (port of opencode's createFileTabListSync). - // Uses a MutationObserver instead of a tab-id effect so the scroll catches - // the moment the new tab is added to the DOM, not after activation lands. + // React to tab list growth via a MutationObserver so the scroll catches the + // moment a new tab is added to the DOM, not after activation lands. // Also remaps vertical wheel motion to horizontal scroll. useEffect(() => { const el = scrollRef.current; @@ -195,8 +194,7 @@ export function TabBar({
.sticky` rule in tabs.css. + // + button get visually masked into the bar's background. "sticky right-0 z-10 flex h-full shrink-0 items-center bg-main-panel pl-3 pr-1", "before:content-[''] before:absolute before:inset-y-0 before:-left-4 before:w-4 before:pointer-events-none", "before:bg-gradient-to-r before:from-transparent before:to-main-panel"