diff options
| author | Adam <[email protected]> | 2026-01-05 00:25:44 -0600 |
|---|---|---|
| committer | adamelmore <[email protected]> | 2026-01-26 11:07:51 -0600 |
| commit | d9eed4c6cacf59089e6b6d6101deff58c7bd5040 (patch) | |
| tree | 9baa833645787d9b9d66cfcbe8363962a85aa6b5 /packages/app/src/pages | |
| parent | 7e34d27b77b3ce51cda27110b4ad1d3d5bc4317c (diff) | |
| download | opencode-d9eed4c6cacf59089e6b6d6101deff58c7bd5040.tar.gz opencode-d9eed4c6cacf59089e6b6d6101deff58c7bd5040.zip | |
feat(app): file tree
Diffstat (limited to 'packages/app/src/pages')
| -rw-r--r-- | packages/app/src/pages/session.tsx | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/packages/app/src/pages/session.tsx b/packages/app/src/pages/session.tsx index 5e5cba69c..413d8ac34 100644 --- a/packages/app/src/pages/session.tsx +++ b/packages/app/src/pages/session.tsx @@ -32,6 +32,7 @@ import { checksum, base64Encode, base64Decode } from "@opencode-ai/util/encode" import { findLast } from "@opencode-ai/util/array" import { useDialog } from "@opencode-ai/ui/context/dialog" import { DialogSelectFile } from "@/components/dialog-select-file" +import FileTree from "@/components/file-tree" import { DialogSelectModel } from "@/components/dialog-select-model" import { DialogSelectMcp } from "@/components/dialog-select-mcp" import { DialogFork } from "@/components/dialog-fork" @@ -1811,8 +1812,29 @@ export default function Page() { <aside id="review-panel" aria-label={language.t("session.panel.reviewAndFiles")} - class="relative flex-1 min-w-0 h-full border-l border-border-weak-base" + class="relative flex-1 min-w-0 h-full border-l border-border-weak-base flex" > + <Show when={layout.fileTree.opened()}> + <div class="relative shrink-0 h-full" style={{ width: `${layout.fileTree.width()}px` }}> + <div class="h-full bg-background-base border-r border-border-weak-base flex flex-col"> + <div class="hidden h-12 shrink-0 flex items-center px-3 border-b border-border-weak-base text-12-medium text-text-weak"> + Files + </div> + <div class="flex-1 min-h-0 overflow-y-auto no-scrollbar p-2"> + <FileTree path="" onFileClick={(node) => openTab(file.tab(node.path))} /> + </div> + </div> + <ResizeHandle + direction="horizontal" + size={layout.fileTree.width()} + min={200} + max={480} + collapseThreshold={160} + onResize={layout.fileTree.resize} + onCollapse={layout.fileTree.close} + /> + </div> + </Show> <DragDropProvider onDragStart={handleDragStart} onDragEnd={handleDragEnd} |
