diff options
| author | Rahul A Mistry <[email protected]> | 2026-02-02 18:20:06 +0530 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-02-02 06:50:06 -0600 |
| commit | 3408f1a6ae7f8783d5fa80dab2cb2cf2e976da6d (patch) | |
| tree | 6dda0c528c3bf69c3f76c9a5041da3adcca25779 /packages/app/src/components | |
| parent | 34c58af796befb22cd557012ec70d3e520b393b9 (diff) | |
| download | opencode-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.tsx | 12 |
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)} |
