chore: press enter to submit chat message

This commit is contained in:
jialin
2025-03-09 21:31:58 +08:00
parent a2ef9d781d
commit ab6e98aae2
17 changed files with 76 additions and 65 deletions
@@ -1,6 +1,6 @@
import IconFont from '@/components/icon-font';
import HotKeys, { KeyMap } from '@/config/hotkeys';
import { ClearOutlined, SendOutlined, SwapOutlined } from '@ant-design/icons';
import { ClearOutlined, EnterOutlined, SwapOutlined } from '@ant-design/icons';
import { useIntl } from '@umijs/max';
import { Button, Checkbox, Divider, Input, Tooltip } from 'antd';
import _ from 'lodash';
@@ -279,6 +279,16 @@ const MessageInput: React.FC<MessageInputProps> = forwardRef(
}
};
const handleOnKeydown = (e: any) => {
if (e.key === KeyMap.ENTER.keybinding) {
if (e.shiftKey) {
return;
}
e.preventDefault();
handleSendMessage();
}
};
const handleDeleteLastImage = useCallback(() => {
if (message.imgs && message.imgs?.length > 0) {
const newImgList = [...(message.imgs || [])];
@@ -293,19 +303,6 @@ const MessageInput: React.FC<MessageInputProps> = forwardRef(
handleInputChange: handleInputChange
}));
useHotkeys(
HotKeys.SUBMIT,
(e: any) => {
console.log('submit message', loading);
e.preventDefault();
handleSendMessage();
},
{
enabled: !loading && !isDisabled,
enableOnFormTags: focused,
preventDefault: true
}
);
useHotkeys(
HotKeys.ADD,
(e: any) => {
@@ -428,7 +425,7 @@ const MessageInput: React.FC<MessageInputProps> = forwardRef(
disabled={isDisabled}
>
{submitIcon ?? (
<SendOutlined rotate={0} className="font-size-14" />
<EnterOutlined rotate={0} className="font-size-14" />
)}
</Button>
</Tooltip>
@@ -461,6 +458,7 @@ const MessageInput: React.FC<MessageInputProps> = forwardRef(
minRows: defaultSize.minRows,
maxRows: defaultSize.maxRows
}}
onKeyDown={handleOnKeydown}
onChange={handleInputChange}
value={message.content}
size="large"
@@ -476,6 +474,7 @@ const MessageInput: React.FC<MessageInputProps> = forwardRef(
minRows: defaultSize.minRows,
maxRows: defaultSize.maxRows
}}
onKeyDown={handleOnKeydown}
onChange={handleInputChange}
value={message.content}
size="large"