| | import React, { createContext, useContext, useMemo } from 'react'; |
| | import { Constants } from 'librechat-data-provider'; |
| | import { useChatContext } from './ChatContext'; |
| |
|
| | interface MCPPanelContextValue { |
| | conversationId: string; |
| | } |
| |
|
| | const MCPPanelContext = createContext<MCPPanelContextValue | undefined>(undefined); |
| |
|
| | export function MCPPanelProvider({ children }: { children: React.ReactNode }) { |
| | const { conversation } = useChatContext(); |
| |
|
| | |
| | const contextValue = useMemo<MCPPanelContextValue>( |
| | () => ({ |
| | conversationId: conversation?.conversationId ?? Constants.NEW_CONVO, |
| | }), |
| | [conversation?.conversationId], |
| | ); |
| |
|
| | return <MCPPanelContext.Provider value={contextValue}>{children}</MCPPanelContext.Provider>; |
| | } |
| |
|
| | export function useMCPPanelContext() { |
| | const context = useContext(MCPPanelContext); |
| | if (!context) { |
| | throw new Error('useMCPPanelContext must be used within MCPPanelProvider'); |
| | } |
| | return context; |
| | } |
| |
|