summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src/components
diff options
context:
space:
mode:
authorRahul A Mistry <[email protected]>2026-02-02 18:20:06 +0530
committerGitHub <[email protected]>2026-02-02 06:50:06 -0600
commit3408f1a6ae7f8783d5fa80dab2cb2cf2e976da6d (patch)
tree6dda0c528c3bf69c3f76c9a5041da3adcca25779 /packages/app/src/components
parent34c58af796befb22cd557012ec70d3e520b393b9 (diff)
downloadopencode-3408f1a6ae7f8783d5fa80dab2cb2cf2e976da6d.tar.gz
opencode-3408f1a6ae7f8783d5fa80dab2cb2cf2e976da6d.zip
feat(app): add tab close keybind (#11780)
Diffstat (limited to 'packages/app/src/components')
-rw-r--r--packages/app/src/components/session/session-sortable-tab.tsx12
1 files changed, 9 insertions, 3 deletions
diff --git a/packages/app/src/components/session/session-sortable-tab.tsx b/packages/app/src/components/session/session-sortable-tab.tsx
index 06609fcfb..516f3c8ed 100644
--- a/packages/app/src/components/session/session-sortable-tab.tsx
+++ b/packages/app/src/components/session/session-sortable-tab.tsx
@@ -3,11 +3,12 @@ import type { JSX } from "solid-js"
import { createSortable } from "@thisbeyond/solid-dnd"
import { FileIcon } from "@opencode-ai/ui/file-icon"
import { IconButton } from "@opencode-ai/ui/icon-button"
-import { Tooltip } from "@opencode-ai/ui/tooltip"
+import { TooltipKeybind } from "@opencode-ai/ui/tooltip"
import { Tabs } from "@opencode-ai/ui/tabs"
import { getFilename } from "@opencode-ai/util/path"
import { useFile } from "@/context/file"
import { useLanguage } from "@/context/language"
+import { useCommand } from "@/context/command"
export function FileVisual(props: { path: string; active?: boolean }): JSX.Element {
return (
@@ -27,6 +28,7 @@ export function FileVisual(props: { path: string; active?: boolean }): JSX.Eleme
export function SortableTab(props: { tab: string; onTabClose: (tab: string) => void }): JSX.Element {
const file = useFile()
const language = useLanguage()
+ const command = useCommand()
const sortable = createSortable(props.tab)
const path = createMemo(() => file.pathFromTab(props.tab))
return (
@@ -36,7 +38,11 @@ export function SortableTab(props: { tab: string; onTabClose: (tab: string) => v
<Tabs.Trigger
value={props.tab}
closeButton={
- <Tooltip value={language.t("common.closeTab")} placement="bottom">
+ <TooltipKeybind
+ title={language.t("common.closeTab")}
+ keybind={command.keybind("tab.close")}
+ placement="bottom"
+ >
<IconButton
icon="close-small"
variant="ghost"
@@ -44,7 +50,7 @@ export function SortableTab(props: { tab: string; onTabClose: (tab: string) => v
onClick={() => props.onTabClose(props.tab)}
aria-label={language.t("common.closeTab")}
/>
- </Tooltip>
+ </TooltipKeybind>
}
hideCloseButton
onMiddleClick={() => props.onTabClose(props.tab)}