Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions packages/tui/src/routes/session/composer/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ interface Tab {
const ComposerContext = createContext<{
register: (tab: Tab) => () => void
active: (id: string) => boolean
close: () => void
}>()

export function useComposerTab() {
Expand Down Expand Up @@ -73,6 +74,7 @@ export function Composer(props: ComposerProps) {
active(id: string) {
return props.open && store.active === id
},
close,
}

const keymap = Keymap.use()
Expand Down
8 changes: 5 additions & 3 deletions packages/tui/src/routes/session/composer/shell-tab.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,11 @@ export function ShellTab(props: { sessionID: string }) {
group: "Composer",
bind: "up",
run() {
const list = entries()
if (list.length === 0) return
setStore("selected", (prev) => (prev - 1 + list.length) % list.length)
if (store.selected === 0) {
composer.close()
return
}
setStore("selected", (prev) => prev - 1)
},
},
{
Expand Down
8 changes: 5 additions & 3 deletions packages/tui/src/routes/session/composer/subagents-tab.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -160,9 +160,11 @@ export function SubagentsTab(props: { sessionID: string }) {
group: "Composer",
bind: "up",
run() {
const list = entries()
if (list.length === 0) return
moveTo((store.selected - 1 + list.length) % list.length, true)
if (store.selected === 0) {
composer.close()
return
}
moveTo(store.selected - 1, true)
},
},
{
Expand Down
Loading