UNPKG

@plteam/chat-ui

Version:

CUI Kit is a free and open-source library for creating AI assistant chat interfaces, built with React, Material UI, and TypeScript

33 lines (32 loc) 1.46 kB
import * as React from 'react'; import { AdapterModel } from '../../models/AdapterModel'; /** * @deprecated - We abandoned (perhaps temporarily) React Context because it created unnecessary renders and slowed down the chat */ const AdapterContext = React.createContext({ transformThread: (thread) => thread, }); const useAdapterContext = () => { return React.useMemo(() => ({ transformMessage: AdapterModel.transformMessage, transformThread: AdapterModel.transformThread ?? AdapterModel.baseThreadTransformer, reverseMessageTransforming: AdapterModel.reverseMessageTransforming, }), [AdapterModel.version]); }; /** * A custom hook that provides a function to reverse transform a message using the * `reverseMessageTransforming` function from the adapter context. * * The returned callback function takes a message model as input and applies the * reverse transformation to the `data` property of the message if the * `reverseMessageTransforming` function is available in the adapter context. * If not, it returns the `data` property of the message as-is. * */ export const useInternalMessageTransformer = () => { const { reverseMessageTransforming } = useAdapterContext(); return React.useCallback((message) => { return reverseMessageTransforming?.(message.data) ?? message.data; }, [reverseMessageTransforming]); }; export { AdapterContext, useAdapterContext };