diff --git a/components/sender/__tests__/index.test.tsx b/components/sender/__tests__/index.test.tsx index 08c1200d..b1f0d88b 100644 --- a/components/sender/__tests__/index.test.tsx +++ b/components/sender/__tests__/index.test.tsx @@ -82,10 +82,10 @@ describe('Sender Component', () => { ); fireEvent.change(container.querySelector('textarea')!, { target: { value: 'bamboo' } }); - expect(onChange).toHaveBeenCalledWith('bamboo'); + expect(onChange).toHaveBeenCalledWith('bamboo', {}); fireEvent.click(container.querySelector('button')!); - expect(onChange).toHaveBeenCalledWith(''); + expect(onChange).toHaveBeenCalledWith('', undefined); }); describe('submitType', () => { diff --git a/components/sender/index.tsx b/components/sender/index.tsx index 61345e7a..2d1bab6c 100644 --- a/components/sender/index.tsx +++ b/components/sender/index.tsx @@ -43,7 +43,7 @@ export interface SenderProps extends Pick void; - onChange?: (value: string) => void; + onChange?: (value: string, e?: React.FormEvent) => void; onCancel?: VoidFunction; onKeyDown?: React.KeyboardEventHandler; onPaste?: React.ClipboardEventHandler; @@ -142,11 +142,11 @@ function Sender(props: SenderProps, ref: React.Ref) { value, }); - const triggerValueChange = (nextValue: string) => { + const triggerValueChange = (nextValue: string, e?: React.FormEvent) => { setInnerValue(nextValue); if (onChange) { - onChange(nextValue); + onChange(nextValue, e); } }; @@ -298,7 +298,7 @@ function Sender(props: SenderProps, ref: React.Ref) { autoSize={{ maxRows: 8 }} value={innerValue} onChange={(e) => { - triggerValueChange((e.target as HTMLTextAreaElement).value); + triggerValueChange((e.target as HTMLTextAreaElement).value, e); triggerSpeech(true); }} onPressEnter={onInternalKeyPress} diff --git a/components/sender/index.zh-CN.md b/components/sender/index.zh-CN.md index 1a3f69ad..e1ec99f8 100644 --- a/components/sender/index.zh-CN.md +++ b/components/sender/index.zh-CN.md @@ -50,7 +50,7 @@ coverDark: https://mdn.alipayobjects.com/huamei_iwk9zp/afts/img/A*cOfrS4fVkOMAAA | submitType | 提交模式 | SubmitType | `enter` \| `shiftEnter` | - | | value | 输入框值 | string | - | - | | onSubmit | 点击发送按钮的回调 | (message: string) => void | - | - | -| onChange | 输入框值改变的回调 | (value: string) => void | - | - | +| onChange | 输入框值改变的回调 | (value: string, e?: React.FormEvent<`HTMLElement`>) => void | - | - | | onCancel | 点击取消按钮的回调 | () => void | - | - | ```typescript | pure