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() + } + }} >