1- import { ReactNode , useState } from "react" ;
1+ import { ReactNode , useState , useMemo } from "react" ;
22import { Body1 , Button , Caption1 , Title2 } from "@fluentui/react-components" ;
33import { ChatRegular , MoreHorizontalRegular } from "@fluentui/react-icons" ;
44
55import { AgentIcon } from "./AgentIcon" ;
6- // import { SettingsPanel } from "../core/SettingsPanel";
6+ import { SettingsPanel } from "../core/SettingsPanel" ;
77import { AgentPreviewChatBot } from "./AgentPreviewChatBot" ;
88import { MenuButton } from "../core/MenuButton/MenuButton" ;
99import { IChatItem } from "./chatbot/types" ;
@@ -23,13 +23,13 @@ interface IAgentPreviewProps {
2323}
2424
2525export function AgentPreview ( { agentDetails } : IAgentPreviewProps ) : ReactNode {
26- // const [isSettingsPanelOpen, setIsSettingsPanelOpen] = useState(false);
26+ const [ isSettingsPanelOpen , setIsSettingsPanelOpen ] = useState ( false ) ;
2727 const [ messageList , setMessageList ] = useState < IChatItem [ ] > ( [ ] ) ;
2828 const [ isResponding , setIsResponding ] = useState ( false ) ;
2929
30- // const handleSettingsPanelOpenChange = (isOpen: boolean) => {
31- // setIsSettingsPanelOpen(isOpen);
32- // };
30+ const handleSettingsPanelOpenChange = ( isOpen : boolean ) => {
31+ setIsSettingsPanelOpen ( isOpen ) ;
32+ } ;
3333
3434 const newThread = ( ) => {
3535 setMessageList ( [ ] ) ;
@@ -47,7 +47,7 @@ export function AgentPreview({ agentDetails }: IAgentPreviewProps): ReactNode {
4747 setMessageList ( ( prev ) => [ ...prev , userMessage ] ) ;
4848 setIsResponding ( true ) ;
4949
50- // Simulate agent response after a delay
50+ // Simulate agent response after a delay. Can be removed when integrating with a real API.
5151 setTimeout ( ( ) => {
5252 const botMessage : IChatItem = {
5353 id : `bot-${ Date . now ( ) } ` ,
@@ -61,13 +61,13 @@ export function AgentPreview({ agentDetails }: IAgentPreviewProps): ReactNode {
6161 } , 1000 ) ;
6262 } ;
6363 const menuItems = [
64- // {
65- // key: "settings",
66- // children: "Settings",
67- // onClick: () => {
68- // setIsSettingsPanelOpen(true);
69- // },
70- // },
64+ {
65+ key : "settings" ,
66+ children : "Settings" ,
67+ onClick : ( ) => {
68+ setIsSettingsPanelOpen ( true ) ;
69+ } ,
70+ } ,
7171 {
7272 key : "terms" ,
7373 children : (
@@ -104,11 +104,14 @@ export function AgentPreview({ agentDetails }: IAgentPreviewProps): ReactNode {
104104 } ,
105105 ] ;
106106
107- const chatContext = {
108- messageList,
109- isResponding,
110- onSend,
111- } ;
107+ const chatContext = useMemo (
108+ ( ) => ( {
109+ messageList,
110+ isResponding,
111+ onSend,
112+ } ) ,
113+ [ messageList , isResponding ]
114+ ) ;
112115
113116 return (
114117 < div className = { styles . container } >
@@ -167,10 +170,10 @@ export function AgentPreview({ agentDetails }: IAgentPreviewProps): ReactNode {
167170 </ div >
168171
169172 { /* Settings Panel */ }
170- { /* <SettingsPanel
173+ < SettingsPanel
171174 isOpen = { isSettingsPanelOpen }
172175 onOpenChange = { handleSettingsPanelOpenChange }
173- /> */ }
176+ />
174177 </ div >
175178 ) ;
176179}
0 commit comments