From 82205034ccd92e6248c0cd56ca96b390d9e52299 Mon Sep 17 00:00:00 2001 From: yiliang114 <1204183885@qq.com> Date: Sat, 29 Nov 2025 18:29:43 +0800 Subject: [PATCH] chore(vscode-ide-companion): remove the ui component of the active save session temporarily --- .../vscode-ide-companion/src/webview/App.tsx | 36 ---- .../webview/components/SaveSessionDialog.css | 173 ------------------ .../webview/components/SaveSessionDialog.tsx | 120 ------------ .../src/webview/components/icons/index.ts | 7 +- .../webview/components/layouts/ChatHeader.tsx | 2 - .../src/webview/styles/ClaudeCodeStyles.css | 1 - 6 files changed, 1 insertion(+), 338 deletions(-) delete mode 100644 packages/vscode-ide-companion/src/webview/components/SaveSessionDialog.css delete mode 100644 packages/vscode-ide-companion/src/webview/components/SaveSessionDialog.tsx diff --git a/packages/vscode-ide-companion/src/webview/App.tsx b/packages/vscode-ide-companion/src/webview/App.tsx index 72c8afe1..41e66915 100644 --- a/packages/vscode-ide-companion/src/webview/App.tsx +++ b/packages/vscode-ide-companion/src/webview/App.tsx @@ -26,7 +26,6 @@ import { EmptyState } from './components/EmptyState.js'; import type { PlanEntry } from './components/PlanDisplay.js'; import { type CompletionItem } from './components/CompletionMenu.js'; import { useCompletionTrigger } from './hooks/useCompletionTrigger.js'; -import { SaveSessionDialog } from './components/SaveSessionDialog.js'; import { InfoBanner } from './components/InfoBanner.js'; import { ChatHeader } from './components/layouts/ChatHeader.js'; import { @@ -69,7 +68,6 @@ export const App: React.FC = () => { const [editMode, setEditMode] = useState('ask'); const [thinkingEnabled, setThinkingEnabled] = useState(false); const [isComposing, setIsComposing] = useState(false); - const [showSaveDialog, setShowSaveDialog] = useState(false); // Completion system const getCompletionItems = React.useCallback( @@ -344,32 +342,6 @@ export const App: React.FC = () => { [completion, inputFieldRef, setInputText, fileContext, vscode], ); - // Handle save session - const handleSaveSession = useCallback( - async (tag: string) => { - if (!sessionManagement.currentSessionId) { - return; - } - - try { - vscode.postMessage({ - type: 'saveSession', - data: { - sessionId: sessionManagement.currentSessionId, - tag, - }, - }); - - // Assume success for now, as we don't get a response - sessionManagement.setSavedSessionTags((prev) => [...prev, tag]); - setShowSaveDialog(false); - } catch (error) { - console.error('[App] Error saving session:', error); - } - }, - [sessionManagement, vscode], - ); - // Handle attach context click const handleAttachContextClick = useCallback(() => { // Open native file picker (different from '@' completion which searches workspace files) @@ -422,7 +394,6 @@ export const App: React.FC = () => { setShowSaveDialog(true)} onNewSession={sessionManagement.handleNewQwenSession} /> @@ -621,13 +592,6 @@ export const App: React.FC = () => { onCompletionClose={completion.closeCompletion} /> - setShowSaveDialog(false)} - onSave={handleSaveSession} - existingTags={sessionManagement.savedSessionTags} - /> - {permissionRequest && ( void; - onSave: (tag: string) => void; - existingTags?: string[]; -} - -export const SaveSessionDialog: React.FC = ({ - isOpen, - onClose, - onSave, - existingTags = [], -}) => { - const [tag, setTag] = useState(''); - const [error, setError] = useState(''); - const inputRef = useRef(null); - - useEffect(() => { - if (isOpen && inputRef.current) { - // Focus the input when dialog opens - setTimeout(() => { - inputRef.current?.focus(); - }, 100); - } - }, [isOpen]); - - useEffect(() => { - if (!isOpen) { - // Reset state when dialog closes - setTag(''); - setError(''); - } - }, [isOpen]); - - const handleSubmit = (e: React.FormEvent) => { - e.preventDefault(); - - if (!tag.trim()) { - setError('Please enter a name for this conversation'); - return; - } - - // Check if tag already exists - if (existingTags.includes(tag.trim())) { - setError( - 'A conversation with this name already exists. Please choose a different name.', - ); - return; - } - - onSave(tag.trim()); - }; - - if (!isOpen) { - return null; - } - - return ( -
-
e.stopPropagation()}> -
-

Save Conversation

- -
- -
-
-
- - { - setTag(e.target.value); - if (error) { - setError(''); - } - }} - placeholder="e.g., project-planning, bug-fix, research" - className={error ? 'error' : ''} - /> - {error &&
{error}
} -
- Give this conversation a meaningful name so you can find it - later -
-
-
- -
- - -
-
-
-
- ); -}; diff --git a/packages/vscode-ide-companion/src/webview/components/icons/index.ts b/packages/vscode-ide-companion/src/webview/components/icons/index.ts index 1e33068d..7f782ae3 100644 --- a/packages/vscode-ide-companion/src/webview/components/icons/index.ts +++ b/packages/vscode-ide-companion/src/webview/components/icons/index.ts @@ -10,12 +10,7 @@ export type { IconProps } from './types.js'; // File icons -export { - FileIcon, - FileListIcon, - SaveDocumentIcon, - FolderIcon, -} from './FileIcons.js'; +export { FileIcon, FileListIcon, FolderIcon } from './FileIcons.js'; // Navigation icons export { diff --git a/packages/vscode-ide-companion/src/webview/components/layouts/ChatHeader.tsx b/packages/vscode-ide-companion/src/webview/components/layouts/ChatHeader.tsx index 33aa4300..6cb3f62e 100644 --- a/packages/vscode-ide-companion/src/webview/components/layouts/ChatHeader.tsx +++ b/packages/vscode-ide-companion/src/webview/components/layouts/ChatHeader.tsx @@ -10,14 +10,12 @@ import { ChevronDownIcon, PlusIcon } from '../icons/index.js'; interface ChatHeaderProps { currentSessionTitle: string; onLoadSessions: () => void; - onSaveSession: () => void; onNewSession: () => void; } export const ChatHeader: React.FC = ({ currentSessionTitle, onLoadSessions, - onSaveSession: _onSaveSession, onNewSession, }) => (