diff options
| author | Aiden Cline <[email protected]> | 2025-11-14 21:45:48 -0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-11-14 23:45:48 -0600 |
| commit | 35c737ac6834fc8178c46ccbef159bc6098ac5f8 (patch) | |
| tree | 73628faad8877b525f9ff1aef60e0fc6a0d75e6e | |
| parent | 725a2c2e958895f08d572d26c15571717907bf40 (diff) | |
| download | opencode-35c737ac6834fc8178c46ccbef159bc6098ac5f8.tar.gz opencode-35c737ac6834fc8178c46ccbef159bc6098ac5f8.zip | |
tweak: only show dropdown for 3+ items (#4345)
| -rw-r--r-- | packages/opencode/src/cli/cmd/tui/routes/session/sidebar.tsx | 48 |
1 files changed, 36 insertions, 12 deletions
diff --git a/packages/opencode/src/cli/cmd/tui/routes/session/sidebar.tsx b/packages/opencode/src/cli/cmd/tui/routes/session/sidebar.tsx index ee83a3afc..9ba799f09 100644 --- a/packages/opencode/src/cli/cmd/tui/routes/session/sidebar.tsx +++ b/packages/opencode/src/cli/cmd/tui/routes/session/sidebar.tsx @@ -60,13 +60,19 @@ export function Sidebar(props: { sessionID: string }) { </box> <Show when={Object.keys(sync.data.mcp).length > 0}> <box> - <box flexDirection="row" gap={1} onMouseDown={() => setMcpExpanded(!mcpExpanded())}> - <text fg={theme.text}>{mcpExpanded() ? "▼" : "▶"}</text> + <box + flexDirection="row" + gap={1} + onMouseDown={() => Object.keys(sync.data.mcp).length > 2 && setMcpExpanded(!mcpExpanded())} + > + <Show when={Object.keys(sync.data.mcp).length > 2}> + <text fg={theme.text}>{mcpExpanded() ? "▼" : "▶"}</text> + </Show> <text fg={theme.text}> <b>MCP</b> </text> </box> - <Show when={mcpExpanded()}> + <Show when={Object.keys(sync.data.mcp).length <= 2 || mcpExpanded()}> <For each={Object.entries(sync.data.mcp)}> {([key, item]) => ( <box flexDirection="row" gap={1}> @@ -100,13 +106,19 @@ export function Sidebar(props: { sessionID: string }) { </Show> <Show when={sync.data.lsp.length > 0}> <box> - <box flexDirection="row" gap={1} onMouseDown={() => setLspExpanded(!lspExpanded())}> - <text fg={theme.text}>{lspExpanded() ? "▼" : "▶"}</text> + <box + flexDirection="row" + gap={1} + onMouseDown={() => sync.data.lsp.length > 2 && setLspExpanded(!lspExpanded())} + > + <Show when={sync.data.lsp.length > 2}> + <text fg={theme.text}>{lspExpanded() ? "▼" : "▶"}</text> + </Show> <text fg={theme.text}> <b>LSP</b> </text> </box> - <Show when={lspExpanded()}> + <Show when={sync.data.lsp.length <= 2 || lspExpanded()}> <For each={sync.data.lsp}> {(item) => ( <box flexDirection="row" gap={1}> @@ -132,13 +144,19 @@ export function Sidebar(props: { sessionID: string }) { </Show> <Show when={todo().length > 0}> <box> - <box flexDirection="row" gap={1} onMouseDown={() => setTodoExpanded(!todoExpanded())}> - <text fg={theme.text}>{todoExpanded() ? "▼" : "▶"}</text> + <box + flexDirection="row" + gap={1} + onMouseDown={() => todo().length > 2 && setTodoExpanded(!todoExpanded())} + > + <Show when={todo().length > 2}> + <text fg={theme.text}>{todoExpanded() ? "▼" : "▶"}</text> + </Show> <text fg={theme.text}> <b>Todo</b> </text> </box> - <Show when={todoExpanded()}> + <Show when={todo().length <= 2 || todoExpanded()}> <For each={todo()}> {(todo) => ( <text style={{ fg: todo.status === "in_progress" ? theme.success : theme.textMuted }}> @@ -151,13 +169,19 @@ export function Sidebar(props: { sessionID: string }) { </Show> <Show when={diff().length > 0}> <box> - <box flexDirection="row" gap={1} onMouseDown={() => setDiffExpanded(!diffExpanded())}> - <text fg={theme.text}>{diffExpanded() ? "▼" : "▶"}</text> + <box + flexDirection="row" + gap={1} + onMouseDown={() => diff().length > 2 && setDiffExpanded(!diffExpanded())} + > + <Show when={diff().length > 2}> + <text fg={theme.text}>{diffExpanded() ? "▼" : "▶"}</text> + </Show> <text fg={theme.text}> <b>Modified Files</b> </text> </box> - <Show when={diffExpanded()}> + <Show when={diff().length <= 2 || diffExpanded()}> <For each={diff() || []}> {(item) => { const file = createMemo(() => { |
