Skip to content
This repository was archived by the owner on Apr 1, 2026. It is now read-only.

Commit ca7a70b

Browse files
authored
tui: add overlay sidebar for narrow screens to improve mobile experience (anomalyco#7288)
1 parent b3a2f9f commit ca7a70b

3 files changed

Lines changed: 20 additions & 20 deletions

File tree

packages/opencode/src/cli/cmd/tui/routes/session/header.tsx

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -99,24 +99,6 @@ export function Header() {
9999
<Title session={session} />
100100
<ContextInfo context={context} cost={cost} />
101101
</box>
102-
<Show when={shareEnabled()}>
103-
<box flexDirection="row" justifyContent="space-between" gap={1}>
104-
<box flexGrow={1} flexShrink={1}>
105-
<Switch>
106-
<Match when={session().share?.url}>
107-
<text fg={theme.textMuted} wrapMode="word">
108-
{session().share!.url}
109-
</text>
110-
</Match>
111-
<Match when={true}>
112-
<text fg={theme.text} wrapMode="word">
113-
/share <span style={{ fg: theme.textMuted }}>copy link</span>
114-
</text>
115-
</Match>
116-
</Switch>
117-
</box>
118-
</box>
119-
</Show>
120102
</Match>
121103
</Switch>
122104
</box>

packages/opencode/src/cli/cmd/tui/routes/session/index.tsx

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1053,7 +1053,24 @@ export function Session() {
10531053
<Toast />
10541054
</box>
10551055
<Show when={sidebarVisible()}>
1056-
<Sidebar sessionID={route.sessionID} />
1056+
<Switch>
1057+
<Match when={wide()}>
1058+
<Sidebar sessionID={route.sessionID} />
1059+
</Match>
1060+
<Match when={!wide()}>
1061+
<box
1062+
position="absolute"
1063+
top={0}
1064+
left={0}
1065+
right={0}
1066+
bottom={0}
1067+
alignItems="flex-end"
1068+
backgroundColor={RGBA.fromInts(0, 0, 0, 70)}
1069+
>
1070+
<Sidebar sessionID={route.sessionID} />
1071+
</box>
1072+
</Match>
1073+
</Switch>
10571074
</Show>
10581075
</box>
10591076
</context.Provider>

packages/opencode/src/cli/cmd/tui/routes/session/sidebar.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import { useDirectory } from "../../context/directory"
1212
import { useKV } from "../../context/kv"
1313
import { TodoItem } from "../../component/todo-item"
1414

15-
export function Sidebar(props: { sessionID: string }) {
15+
export function Sidebar(props: { sessionID: string; overlay?: boolean }) {
1616
const sync = useSync()
1717
const { theme } = useTheme()
1818
const session = createMemo(() => sync.session.get(props.sessionID)!)
@@ -77,6 +77,7 @@ export function Sidebar(props: { sessionID: string }) {
7777
paddingBottom={1}
7878
paddingLeft={2}
7979
paddingRight={2}
80+
position={props.overlay ? "absolute" : "relative"}
8081
>
8182
<scrollbox flexGrow={1}>
8283
<box flexShrink={0} gap={1} paddingRight={1}>

0 commit comments

Comments
 (0)