1
1
import React , { useState , FormEvent , useRef , useEffect } from 'react' ;
2
2
import { Conversation , Message } from '../../types/chat' ;
3
3
import { MCPServerSettings } from '../../types/settings' ;
4
- import { Send , Square , Copy , Pencil , Loader2 , Globe , RefreshCw , Check , X , ServerCog } from 'lucide-react' ;
4
+ import { Send , Square , Copy , Pencil , Loader2 , Globe , RefreshCw , Check , X ,
5
+ // ServerCog
6
+ } from 'lucide-react' ;
5
7
import MarkdownContent from './MarkdownContent' ;
6
8
import MessageToolboxMenu , { ToolboxAction } from '../ui/MessageToolboxMenu' ;
7
9
import { MessageHelper } from '../../services/message-helper' ;
@@ -13,7 +15,7 @@ import ProviderIcon from '../ui/ProviderIcon';
13
15
import { useTranslation } from '../../hooks/useTranslation' ;
14
16
import FileUploadButton from './FileUploadButton' ;
15
17
import FileAttachmentDisplay from './FileAttachmentDisplay' ;
16
- import ImageGenerationButton from './ImageGenerationButton' ;
18
+ // import ImageGenerationButton from './ImageGenerationButton';
17
19
18
20
interface ChatMessageAreaProps {
19
21
activeConversation : Conversation | null ;
@@ -44,9 +46,9 @@ export const ChatMessageArea: React.FC<ChatMessageAreaProps> = ({
44
46
isCurrentlyStreaming = false ,
45
47
selectedProvider,
46
48
selectedModel,
47
- mcpServers,
48
- selectedMcpServers,
49
- onToggleMcpServer,
49
+ // mcpServers,
50
+ // selectedMcpServers,
51
+ // onToggleMcpServer,
50
52
} ) => {
51
53
const { t } = useTranslation ( ) ;
52
54
const [ inputValue , setInput ] = useState ( '' ) ;
@@ -61,9 +63,9 @@ export const ChatMessageArea: React.FC<ChatMessageAreaProps> = ({
61
63
const [ webSearchActive , setWebSearchActive ] = useState ( false ) ;
62
64
const [ isWebSearchPreviewEnabled , setIsWebSearchPreviewEnabled ] = useState ( false ) ;
63
65
const [ selectedFiles , setSelectedFiles ] = useState < File [ ] > ( [ ] ) ;
64
- const [ mcpPopupOpen , setMcpPopupOpen ] = useState ( false ) ;
65
- const mcpButtonRef = useRef < HTMLButtonElement > ( null ) ;
66
- const mcpPopupRef = useRef < HTMLDivElement > ( null ) ;
66
+ // const [mcpPopupOpen, setMcpPopupOpen] = useState(false);
67
+ // const mcpButtonRef = useRef<HTMLButtonElement>(null);
68
+ // const mcpPopupRef = useRef<HTMLDivElement>(null);
67
69
68
70
// Scroll to bottom when messages change
69
71
useEffect ( ( ) => {
@@ -291,23 +293,23 @@ export const ChatMessageArea: React.FC<ChatMessageAreaProps> = ({
291
293
}
292
294
293
295
// Add useEffect to handle click outside for MCP popup
294
- useEffect ( ( ) => {
295
- const handleClickOutside = ( event : MouseEvent ) => {
296
- if (
297
- mcpPopupRef . current &&
298
- ! mcpPopupRef . current . contains ( event . target as Node ) &&
299
- mcpButtonRef . current &&
300
- ! mcpButtonRef . current . contains ( event . target as Node )
301
- ) {
302
- setMcpPopupOpen ( false ) ;
303
- }
304
- } ;
305
-
306
- document . addEventListener ( 'mousedown' , handleClickOutside ) ;
307
- return ( ) => {
308
- document . removeEventListener ( 'mousedown' , handleClickOutside ) ;
309
- } ;
310
- } , [ ] ) ;
296
+ // useEffect(() => {
297
+ // const handleClickOutside = (event: MouseEvent) => {
298
+ // if (
299
+ // mcpPopupRef.current &&
300
+ // !mcpPopupRef.current.contains(event.target as Node) &&
301
+ // mcpButtonRef.current &&
302
+ // !mcpButtonRef.current.contains(event.target as Node)
303
+ // ) {
304
+ // setMcpPopupOpen(false);
305
+ // }
306
+ // };
307
+
308
+ // document.addEventListener('mousedown', handleClickOutside);
309
+ // return () => {
310
+ // document.removeEventListener('mousedown', handleClickOutside);
311
+ // };
312
+ // }, []);
311
313
312
314
// If no active conversation is selected
313
315
if ( ! activeConversation ) {
@@ -566,7 +568,7 @@ export const ChatMessageArea: React.FC<ChatMessageAreaProps> = ({
566
568
) }
567
569
568
570
{ /* Image generation button */ }
569
- < ImageGenerationButton
571
+ { /* <ImageGenerationButton
570
572
disabled={isLoading || isCurrentlyStreaming}
571
573
onImageGenerate={(prompt, provider, model) => {
572
574
// Set special message for image generation
@@ -575,7 +577,7 @@ export const ChatMessageArea: React.FC<ChatMessageAreaProps> = ({
575
577
// Focus the input
576
578
inputRef.current?.focus();
577
579
}}
578
- />
580
+ /> */ }
579
581
</ div >
580
582
581
583
{ /* Web search element */ }
@@ -584,7 +586,7 @@ export const ChatMessageArea: React.FC<ChatMessageAreaProps> = ({
584
586
}
585
587
586
588
{ /* MCP Servers dropdown */ }
587
- { mcpServers && Object . keys ( mcpServers ) . length > 0 && (
589
+ { /* { mcpServers && Object.keys(mcpServers).length > 0 && (
588
590
<div className="relative">
589
591
<button
590
592
type="button"
@@ -645,7 +647,7 @@ export const ChatMessageArea: React.FC<ChatMessageAreaProps> = ({
645
647
</div>
646
648
)}
647
649
</div>
648
- ) }
650
+ )} */ }
649
651
650
652
< span className = { `flex-1 hidden text-xs text-center pt-4 text-gray-300 md:block truncate pr-6 lg:pr-12` } >
651
653
{ t ( 'chat.pressShiftEnterToChangeLines' ) }
0 commit comments