@uimkit/uikit-react
Version:
<img style="width:64px" src="https://mgmt.uimkit.chat/media/img/avatar.png"/>
55 lines (52 loc) • 4.28 kB
JavaScript
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