diff --git a/packages/ui/src/components/instance/instance-shell2.tsx b/packages/ui/src/components/instance/instance-shell2.tsx index 0fc0353a..e92b6676 100644 --- a/packages/ui/src/components/instance/instance-shell2.tsx +++ b/packages/ui/src/components/instance/instance-shell2.tsx @@ -12,7 +12,7 @@ import { } from "solid-js" import type { ToolState } from "@opencode-ai/sdk" import { Accordion } from "@kobalte/core" -import { ChevronDown, TerminalSquare, Trash2, XOctagon } from "lucide-solid" +import { ChevronDown, Search, TerminalSquare, Trash2, XOctagon } from "lucide-solid" import AppBar from "@suid/material/AppBar" import Box from "@suid/material/Box" import Drawer from "@suid/material/Drawer" @@ -149,6 +149,7 @@ const InstanceShell2: Component = (props) => { const [selectedBackgroundProcess, setSelectedBackgroundProcess] = createSignal(null) const [showBackgroundOutput, setShowBackgroundOutput] = createSignal(false) const [permissionModalOpen, setPermissionModalOpen] = createSignal(false) + const [showSessionSearch, setShowSessionSearch] = createSignal(false) const messageStore = createMemo(() => messageStoreBus.getOrCreate(props.instance.id)) @@ -845,6 +846,23 @@ const InstanceShell2: Component = (props) => { {t("instanceShell.leftPanel.sessionsTitle")}
+ setShowSessionSearch((current) => !current)} + sx={{ + color: showSessionSearch() ? "var(--text-primary)" : "inherit", + backgroundColor: showSessionSearch() ? "var(--surface-hover)" : "transparent", + "&:hover": { + backgroundColor: "var(--surface-hover)", + }, + }} + > + + = (props) => { void result.catch((error) => log.error("Failed to create session:", error)) } }} - enableFilterBar + enableFilterBar={showSessionSearch()} showHeader={false} showFooter={false} /> diff --git a/packages/ui/src/components/session-list.tsx b/packages/ui/src/components/session-list.tsx index a529f221..5d1eca0f 100644 --- a/packages/ui/src/components/session-list.tsx +++ b/packages/ui/src/components/session-list.tsx @@ -49,7 +49,7 @@ const SessionList: Component = (props) => { const [isRenaming, setIsRenaming] = createSignal(false) const [filterQuery, setFilterQuery] = createSignal("") - const normalizedQuery = createMemo(() => filterQuery().trim().toLowerCase()) + const normalizedQuery = createMemo(() => (props.enableFilterBar ? filterQuery().trim().toLowerCase() : "")) const [selectedSessionIds, setSelectedSessionIds] = createSignal>(new Set())