diff --git a/apps/x/apps/renderer/src/App.tsx b/apps/x/apps/renderer/src/App.tsx index a9a88bf7..8a5548da 100644 --- a/apps/x/apps/renderer/src/App.tsx +++ b/apps/x/apps/renderer/src/App.tsx @@ -6,7 +6,7 @@ import type { LanguageModelUsage, ToolUIPart } from 'ai'; import './App.css' import z from 'zod'; import { Button } from './components/ui/button'; -import { CheckIcon, LoaderIcon, ArrowUp } from 'lucide-react'; +import { CheckIcon, LoaderIcon, ArrowUp, PanelRightIcon } from 'lucide-react'; import { cn } from '@/lib/utils'; import { MarkdownEditor } from './components/markdown-editor'; import { ChatInputBar } from './components/chat-button'; @@ -334,7 +334,7 @@ function App() { }) const [graphStatus, setGraphStatus] = useState<'idle' | 'loading' | 'ready' | 'error'>('idle') const [graphError, setGraphError] = useState(null) - const [isChatSidebarOpen, setIsChatSidebarOpen] = useState(false) + const [isChatSidebarOpen, setIsChatSidebarOpen] = useState(true) // Auto-save state const [isSaving, setIsSaving] = useState(false) @@ -1120,15 +1120,15 @@ function App() { knowledgeActions={knowledgeActions} /> - {/* Header with sidebar trigger */} + {/* Header with sidebar triggers */}
- + {headerTitle} {selectedPath && ( -
+
{isSaving ? ( <> @@ -1147,11 +1147,25 @@ function App() { variant="ghost" size="sm" onClick={() => setIsGraphOpen(false)} - className="ml-auto text-foreground" + className="text-foreground" > Close Graph )} + {(selectedPath || isGraphOpen) && ( + <> + + + + )}
{isGraphOpen ? ( @@ -1243,10 +1257,10 @@ function App() {
{/* Chat sidebar - shown when viewing files/graph */} - {isChatSidebarOpen && (selectedPath || isGraphOpen) && ( + {(selectedPath || isGraphOpen) && ( setIsChatSidebarOpen(false)} + isOpen={isChatSidebarOpen} onNewChat={handleNewChat} conversation={conversation} currentAssistantMessage={currentAssistantMessage} @@ -1255,9 +1269,6 @@ function App() { message={message} onMessageChange={setMessage} onSubmit={handlePromptSubmit} - contextUsage={contextUsage} - maxTokens={maxTokens} - usedTokens={usedTokens} knowledgeFiles={knowledgeFiles} recentFiles={recentWikiFiles} visibleFiles={visibleKnowledgeFiles} diff --git a/apps/x/apps/renderer/src/components/chat-sidebar.tsx b/apps/x/apps/renderer/src/components/chat-sidebar.tsx index b5801209..c11fbfe4 100644 --- a/apps/x/apps/renderer/src/components/chat-sidebar.tsx +++ b/apps/x/apps/renderer/src/components/chat-sidebar.tsx @@ -1,6 +1,6 @@ import { useCallback, useEffect, useMemo, useRef, useState } from 'react' -import { ArrowUp, PanelRightClose, Plus } from 'lucide-react' -import type { LanguageModelUsage, ToolUIPart } from 'ai' +import { ArrowUp, Plus } from 'lucide-react' +import type { ToolUIPart } from 'ai' import { Button } from '@/components/ui/button' import { cn } from '@/lib/utils' import { @@ -103,7 +103,7 @@ const DEFAULT_WIDTH = 400 interface ChatSidebarProps { defaultWidth?: number - onClose: () => void + isOpen?: boolean onNewChat: () => void conversation: ConversationItem[] currentAssistantMessage: string @@ -112,9 +112,6 @@ interface ChatSidebarProps { message: string onMessageChange: (message: string) => void onSubmit: (message: PromptInputMessage, mentions?: FileMention[]) => void - contextUsage: LanguageModelUsage - maxTokens: number - usedTokens: number knowledgeFiles?: string[] recentFiles?: string[] visibleFiles?: string[] @@ -123,7 +120,7 @@ interface ChatSidebarProps { export function ChatSidebar({ defaultWidth = DEFAULT_WIDTH, - onClose, + isOpen = true, onNewChat, conversation, currentAssistantMessage, @@ -396,10 +393,15 @@ export function ChatSidebar({ return null } + const displayWidth = isOpen ? width : 0 + return (
{/* Resize handle */}
- {/* Header - minimal, no border */} -
- - - - - Close - + {/* Header - minimal, just new chat button */} +