diff --git a/packages/app/src/components/session/session-sortable-tab.tsx b/packages/app/src/components/session/session-sortable-tab.tsx
index 1e3f83546..595ff9d6f 100644
--- a/packages/app/src/components/session/session-sortable-tab.tsx
+++ b/packages/app/src/components/session/session-sortable-tab.tsx
@@ -39,6 +39,7 @@ export function SortableTab(props: { tab: string; onTabClose: (tab: string) => v
}
hideCloseButton
+ onMiddleClick={() => props.onTabClose(props.tab)}
>
{(p) => }
diff --git a/packages/app/src/pages/session.tsx b/packages/app/src/pages/session.tsx
index a0de9021c..7221ebe86 100644
--- a/packages/app/src/pages/session.tsx
+++ b/packages/app/src/pages/session.tsx
@@ -993,6 +993,7 @@ export default function Page() {
}
hideCloseButton
+ onMiddleClick={() => tabs().close("context")}
>
diff --git a/packages/ui/src/components/tabs.tsx b/packages/ui/src/components/tabs.tsx
index 0a4d5b91a..8c892a6e5 100644
--- a/packages/ui/src/components/tabs.tsx
+++ b/packages/ui/src/components/tabs.tsx
@@ -13,6 +13,7 @@ export interface TabsTriggerProps extends ComponentProps
}
hideCloseButton?: boolean
closeButton?: JSX.Element
+ onMiddleClick?: () => void
}
export interface TabsContentProps extends ComponentProps {}
@@ -55,6 +56,7 @@ function TabsTrigger(props: ParentProps) {
"children",
"closeButton",
"hideCloseButton",
+ "onMiddleClick",
])
return (
) {
...(split.classList ?? {}),
[split.class ?? ""]: !!split.class,
}}
+ onAuxClick={(e) => {
+ if (e.button === 1 && split.onMiddleClick) {
+ e.preventDefault()
+ split.onMiddleClick()
+ }
+ }}
>