mirror of
https://github.com/mastodon/mastodon.git
synced 2026-02-21 08:08:32 +00:00
Add Cmd/Ctrl+Enter to submit when Textarea is focused (#37821)
This commit is contained in:
parent
c53bb3b33e
commit
8c2c94fa6c
|
|
@ -1,5 +1,5 @@
|
|||
import type { ComponentPropsWithoutRef } from 'react';
|
||||
import { forwardRef } from 'react';
|
||||
import { forwardRef, useCallback } from 'react';
|
||||
|
||||
import classNames from 'classnames';
|
||||
|
||||
|
|
@ -36,12 +36,26 @@ TextAreaField.displayName = 'TextAreaField';
|
|||
export const TextArea = forwardRef<
|
||||
HTMLTextAreaElement,
|
||||
ComponentPropsWithoutRef<'textarea'>
|
||||
>(({ className, ...otherProps }, ref) => (
|
||||
<textarea
|
||||
{...otherProps}
|
||||
className={classNames(className, classes.input)}
|
||||
ref={ref}
|
||||
/>
|
||||
));
|
||||
>(({ className, onKeyDown, ...otherProps }, ref) => {
|
||||
const handleSubmitHotkey = useCallback(
|
||||
(e: React.KeyboardEvent<HTMLTextAreaElement>) => {
|
||||
onKeyDown?.(e);
|
||||
if (e.key === 'Enter' && (e.ctrlKey || e.metaKey)) {
|
||||
const targetForm = e.currentTarget.form;
|
||||
targetForm?.requestSubmit();
|
||||
}
|
||||
},
|
||||
[onKeyDown],
|
||||
);
|
||||
|
||||
return (
|
||||
<textarea
|
||||
{...otherProps}
|
||||
onKeyDown={handleSubmitHotkey}
|
||||
className={classNames(className, classes.input)}
|
||||
ref={ref}
|
||||
/>
|
||||
);
|
||||
});
|
||||
|
||||
TextArea.displayName = 'TextArea';
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user