
Security News
libxml2 Maintainer Ends Embargoed Vulnerability Reports, Citing Unsustainable Burden
Libxml2’s solo maintainer drops embargoed security fixes, highlighting the burden on unpaid volunteers who keep critical open source software secure.
@chainlit/react-client
Advanced tools
The @chainlit/react-client
package provides a set of React hooks as well as an API client to connect to your Chainlit application from any React application. The package includes hooks for managing chat sessions, messages, data, and interactions.
To install the package, run the following command in your project directory:
npm install @chainlit/react-client
This package use Recoil to manage its state. This means you will have to wrap your application in a recoil provider:
import React from 'react';
import ReactDOM from 'react-dom/client';
import { RecoilRoot } from 'recoil';
import { ChainlitAPI, ChainlitContext } from '@chainlit/react-client';
const CHAINLIT_SERVER_URL = 'http://localhost:8000';
const apiClient = new ChainlitAPI(CHAINLIT_SERVER_URL, 'webapp');
ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render(
<React.StrictMode>
<ChainlitContext.Provider value={apiClient}>
<RecoilRoot>
<MyApp />
</RecoilRoot>
</ChainlitContext.Provider>
</React.StrictMode>
);
useChatSession
This hook is responsible for managing the chat session's connection to the WebSocket server.
connect
: Establishes a connection to the WebSocket server.disconnect
: Disconnects from the WebSocket server.setChatProfile
: Sets the chat profile state.import { useChatSession } from '@chainlit/react-client';
const ChatComponent = () => {
const { connect, disconnect, chatProfile, setChatProfile } = useChatSession();
// Connect to the WebSocket server
useEffect(() => {
connect({
userEnv: {
/* user environment variables */
}
});
return () => {
disconnect();
};
}, []);
// Rest of your component logic
};
useChatMessages
This hook provides access to the chat messages and the first user message.
messages
: An array of chat messages.firstUserMessage
: The first message from the user.import { useChatMessages } from '@chainlit/react-client';
const MessagesComponent = () => {
const { messages, firstUserMessage } = useChatMessages();
// Render your messages
return (
<div>
{messages.map((message) => (
<p key={message.id}>{message.output}</p>
))}
</div>
);
};
useChatData
This hook provides access to various chat-related data and states.
actions
: An array of actions.askUser
: The current ask user state.avatars
: An array of avatar elements.chatSettingsDefaultValue
: The default value for chat settings.chatSettingsInputs
: The current chat settings inputs.chatSettingsValue
: The current value of chat settings.connected
: A boolean indicating if the WebSocket connection is established.disabled
: A boolean indicating if the chat is disabled.elements
: An array of chat elements.error
: A boolean indicating if there is an error in the session.loading
: A boolean indicating if the chat is in a loading state.tasklists
: An array of tasklist elements.import { useChatData } from '@chainlit/react-client';
const ChatDataComponent = () => {
const { loading, connected, error } = useChatData();
// Use the data to render your component
if (loading) return <p>Loading...</p>;
if (error) return <p>Error connecting to chat...</p>;
if (!connected) return <p>Disconnected...</p>;
// Rest of your component logic
};
useChatInteract
This hook provides methods to interact with the chat, such as sending messages, replying, and updating settings.
callAction
: Calls an action.clear
: Clears the chat session.replyMessage
: Replies to a message.sendMessage
: Sends a message.stopTask
: Stops the current task.setIdToResume
: Sets the ID to resume a thread.updateChatSettings
: Updates the chat settings.import { useChatInteract } from '@chainlit/react-client';
const InteractionComponent = () => {
const { sendMessage, replyMessage } = useChatInteract();
const handleSendMessage = () => {
const message = { output: 'Hello, World!', id: 'message-id' };
sendMessage(message);
};
const handleReplyMessage = () => {
const message = { output: 'Replying to your message', id: 'reply-id' };
replyMessage(message);
};
// Render your interaction component
return (
<div>
<button onClick={handleSendMessage}>Send Message</button>
<button onClick={handleReplyMessage}>Reply to Message</button>
</div>
);
};
FAQs
Websocket client to connect to your chainlit app.
The npm package @chainlit/react-client receives a total of 1,111 weekly downloads. As such, @chainlit/react-client popularity was classified as popular.
We found that @chainlit/react-client demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Libxml2’s solo maintainer drops embargoed security fixes, highlighting the burden on unpaid volunteers who keep critical open source software secure.
Research
Security News
Socket researchers uncover how browser extensions in trusted stores are used to hijack sessions, redirect traffic, and manipulate user behavior.
Research
Security News
An in-depth analysis of credential stealers, crypto drainers, cryptojackers, and clipboard hijackers abusing open source package registries to compromise Web3 development environments.