diff --git a/app/javascript/mastodon/components/form_fields/text_area_field.tsx b/app/javascript/mastodon/components/form_fields/text_area_field.tsx
index bbde89574fa..6cbced9faf4 100644
--- a/app/javascript/mastodon/components/form_fields/text_area_field.tsx
+++ b/app/javascript/mastodon/components/form_fields/text_area_field.tsx
@@ -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) => (
-
-));
+>(({ className, onKeyDown, ...otherProps }, ref) => {
+ const handleSubmitHotkey = useCallback(
+ (e: React.KeyboardEvent) => {
+ onKeyDown?.(e);
+ if (e.key === 'Enter' && (e.ctrlKey || e.metaKey)) {
+ const targetForm = e.currentTarget.form;
+ targetForm?.requestSubmit();
+ }
+ },
+ [onKeyDown],
+ );
+
+ return (
+
+ );
+});
TextArea.displayName = 'TextArea';