UNPKG

@uimkit/uikit-react

Version:

<img style="width:64px" src="https://mgmt.uimkit.chat/media/img/avatar.png"/>

55 lines (52 loc) 4.28 kB
import { __assign } from 'tslib'; import React__default from 'react'; import '../../context/TranslationContext.js'; import { useUIKit } from '../../context/UIKitContext.js'; import { useComponentContext } from '../../context/ComponentContext.js'; import '../../context/ChatActionContext.js'; import { MessageInputContextProvider } from '../../context/MessageInputContext.js'; import '../../context/UIMessageContext.js'; import { useChatStateContext } from '../../context/ChatStateContext.js'; import { useCreateMessageInputContext } from './hooks/useCreateMessageInputContext.js'; import { useMessageInputState } from './hooks/useMessageInputState.js'; import { EmptyStateIndicator } from '../EmptyStateIndicator/EmptyStateIndicator.js'; import { InputQuoteDefault } from './InputQuoteDefault.js'; import { InputPluginsDefault } from './InputPluginsDefault.js'; import { ConversationType } from '../../types/models.js'; import '../../types/events.js'; import { DefaultTriggerProvider } from './DefaultTriggerProvider.js'; import { clsx } from '../../node_modules/.pnpm/clsx@1.2.1/node_modules/clsx/dist/clsx.m.js'; import { UIMessageInputFlat } from './UIMessageInputFlat.js'; function UIMessageInputProvider(props) { var children = props.children, propsDisabled = props.disabled, propsFoces = props.focus, pluginConfig = props.pluginConfig; var UIMessageInputConfig = useChatStateContext().UIMessageInputConfig; var messageInputState = useMessageInputState(props); var activeConversation = useUIKit().activeConversation; var contextDisabled = (activeConversation === null || activeConversation === void 0 ? void 0 : activeConversation.type) === ConversationType.System; var focus = propsFoces || (UIMessageInputConfig === null || UIMessageInputConfig === void 0 ? void 0 : UIMessageInputConfig.focus); var messageInputContextValue = useCreateMessageInputContext(__assign(__assign(__assign({}, messageInputState), props), { // textareaRef: propsTextareaRef || UIMessageInputConfig?.textareaRef || textareaRef, disabled: propsDisabled || (UIMessageInputConfig === null || UIMessageInputConfig === void 0 ? void 0 : UIMessageInputConfig.disabled) || contextDisabled, focus: typeof (focus) === 'boolean' ? focus : true, pluginConfig: pluginConfig })); return (React__default.createElement(MessageInputContextProvider, { value: messageInputContextValue }, children)); } function UIMessageInput(props) { var propsUIMessageInput = props.UIMessageInput, propsInputPlugins = props.InputPlugins, propsInputQuote = props.InputQuote, propsIsTransmitter = props.isTransmitter, propsClassName = props.className; var UIMessageInputConfig = useChatStateContext().UIMessageInputConfig; var className = propsClassName || (UIMessageInputConfig === null || UIMessageInputConfig === void 0 ? void 0 : UIMessageInputConfig.className); propsIsTransmitter || (UIMessageInputConfig === null || UIMessageInputConfig === void 0 ? void 0 : UIMessageInputConfig.isTransmitter) || false; var _a = useComponentContext('UIMessageInput'), ContextInput = _a.UIMessageInput, ContextInputPlugins = _a.InputPlugins, ContextInputQuote = _a.InputQuote, _b = _a.TriggerProvider, TriggerProvider = _b === void 0 ? DefaultTriggerProvider : _b; var Input = propsUIMessageInput || ContextInput || /*UIMessageInputDefault*/ UIMessageInputFlat; var InputPlugins = propsInputPlugins || ContextInputPlugins || InputPluginsDefault || EmptyStateIndicator; var InputQuote = propsInputQuote || ContextInputQuote || InputQuoteDefault; return (React__default.createElement("div", { className: clsx("uim-message-input", className) }, React__default.createElement(UIMessageInputProvider, __assign({}, props), React__default.createElement(InputQuote, null), React__default.createElement(InputPlugins, null), React__default.createElement("div", { className: "uim-message-input-main" }, React__default.createElement("div", { className: "uim-message-input-box" }, React__default.createElement(TriggerProvider, null, React__default.createElement(Input, null))))))); } export { UIMessageInput }; //# sourceMappingURL=UIMessageInput.js.map