fix: not allowed input should hide action

pull/146/head
moonrailgun 2 years ago
parent 747a6d3afe
commit 464fd7c9f8

@ -6,7 +6,7 @@ import { isEnterHotkey } from '@/utils/hot-key';
import React, { useRef, useState } from 'react'; import React, { useRef, useState } from 'react';
import { ChatInputAddon } from './Addon'; import { ChatInputAddon } from './Addon';
import { ClipboardHelper } from './clipboard-helper'; import { ClipboardHelper } from './clipboard-helper';
import { ChatInputActionContext } from './context'; import { ChatInputActionContext, useChatInputMentionsContext } from './context';
import { uploadMessageImage } from './utils'; import { uploadMessageImage } from './utils';
import { ChatInputBoxInput } from './input'; import { ChatInputBoxInput } from './input';
import { import {
@ -31,6 +31,7 @@ export const ChatInputBox: React.FC<ChatInputBoxProps> = React.memo((props) => {
const inputRef = useRef<HTMLInputElement>(null); const inputRef = useRef<HTMLInputElement>(null);
const [message, setMessage] = useState(''); const [message, setMessage] = useState('');
const [mentions, setMentions] = useState<string[]>([]); const [mentions, setMentions] = useState<string[]>([]);
const { disabled } = useChatInputMentionsContext();
const handleSendMsg = useEvent(async () => { const handleSendMsg = useEvent(async () => {
await props.onSendMsg(message, { await props.onSendMsg(message, {
mentions: _uniq(mentions), // 发送前去重 mentions: _uniq(mentions), // 发送前去重
@ -110,27 +111,31 @@ export const ChatInputBox: React.FC<ChatInputBoxProps> = React.memo((props) => {
/> />
</div> </div>
<div className="px-2 flex space-x-1"> {!disabled && (
{pluginChatInputButtons.map((item, i) => <>
React.cloneElement(item.render(), { <div className="px-2 flex space-x-1">
key: `plugin-chatinput-btn#${i}`, {pluginChatInputButtons.map((item, i) =>
}) React.cloneElement(item.render(), {
)} key: `plugin-chatinput-btn#${i}`,
})
)}
<ChatInputEmotion /> <ChatInputEmotion />
{message ? ( {message ? (
<Icon <Icon
icon="mdi:send-circle-outline" icon="mdi:send-circle-outline"
className="text-2xl cursor-pointer" className="text-2xl cursor-pointer"
onClick={() => handleSendMsg()} onClick={() => handleSendMsg()}
/> />
) : ( ) : (
<ChatInputAddon /> <ChatInputAddon />
)} )}
</div> </div>
<ChatDropArea /> <ChatDropArea />
</>
)}
</div> </div>
</div> </div>
</ChatInputActionContext.Provider> </ChatInputActionContext.Provider>

Loading…
Cancel
Save