import React, { useRef } from 'react'; import { useTranslation } from 'react-i18next'; import './styles/index.scss'; import { EmojiPicker } from './EmojiPicker'; import { Plugins } from '../Plugins'; import { useUploadElement } from './hooks/useUploadElement'; import { MESSAGE_TYPE_NAME } from '../../constants'; import { useTUIMessageInputContext } from '../../context/TUIMessageInputContext'; import { Icon, IconTypes } from '../Icon'; import { useTUIChatStateContext } from '../../context'; export function InputPluginsDefalut():React.ReactElement { const { sendUploadMessage, pluginConfig: propsPluginConfig, } = useTUIMessageInputContext('TUIMessageInputDefault'); const { t } = useTranslation(); const { TUIMessageInputConfig } = useTUIChatStateContext('TUIMessageInput'); const propPlugins = propsPluginConfig?.plugins || TUIMessageInputConfig?.pluginConfig?.plugins || []; const showNumber = propsPluginConfig?.showNumber || TUIMessageInputConfig?.pluginConfig?.showNumber || 1; const MoreIcon = propsPluginConfig?.MoreIcon || TUIMessageInputConfig?.pluginConfig?.MoreIcon; const handlePluginBoolenParams = ( porpsVal?:boolean | undefined, contextVal?:boolean | undefined, defaultVal?: boolean, ) => { if (typeof (porpsVal) === 'boolean') { return porpsVal; } if (typeof (contextVal) === 'boolean') { return contextVal; } return defaultVal; }; const isEmojiPicker = handlePluginBoolenParams( propsPluginConfig?.isEmojiPicker, TUIMessageInputConfig?.pluginConfig?.isEmojiPicker, true, ); const isImagePicker = handlePluginBoolenParams( propsPluginConfig?.isImagePicker, TUIMessageInputConfig?.pluginConfig?.isImagePicker, true, ); const isVideoPicker = handlePluginBoolenParams( propsPluginConfig?.isVideoPicker, TUIMessageInputConfig?.pluginConfig?.isVideoPicker, true, ); const isFilePicker = handlePluginBoolenParams( propsPluginConfig?.isFilePicker, TUIMessageInputConfig?.pluginConfig?.isFilePicker, true, ); const pluginsRef = useRef(null); const ImagePicker = isImagePicker && useUploadElement({ children: (