From 6c92cbc1d1a038a31529e4bbfff3e64bd2e84fcd Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Thu, 30 Jul 2026 17:24:08 +0300 Subject: [PATCH] made submit-on-enter a user setting, only affects chats tho --- src/components/chat_view/chat_view.vue | 4 ++-- src/components/post_status_form/post_status_form.js | 5 ++++- src/components/settings_modal/tabs/composing_tab.vue | 7 +++++++ src/i18n/en.json | 1 + src/modules/default_config_state.js | 5 +++++ 5 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/components/chat_view/chat_view.vue b/src/components/chat_view/chat_view.vue index ebe3cc99c..bc75ef64d 100644 --- a/src/components/chat_view/chat_view.vue +++ b/src/components/chat_view/chat_view.vue @@ -106,8 +106,8 @@ :disable-submit="isConversation ? !!replyStatus : (errorLoadingChat || !chat)" :optimistic-posting="!isConversation" - :submit-on-enter="!mobileLayout" - :preserve-focus="!mobileLayout" + chat-view + preserve-focus :auto-focus="!mobileLayout" :placeholder="formPlaceholder" :file-limit="isConversation ? null : 1" diff --git a/src/components/post_status_form/post_status_form.js b/src/components/post_status_form/post_status_form.js index 6b26103ef..3b5daf56f 100644 --- a/src/components/post_status_form/post_status_form.js +++ b/src/components/post_status_form/post_status_form.js @@ -98,13 +98,13 @@ const PostStatusForm = { draftId: String, // ID of the draft to be used // Chats stuff + chatView: Boolean, // Used for the "submit on enter" user setting maxHeight: Number, placeholder: String, postHandler: Function, // Used to override poster to use chats one instead of status one preserveFocus: Boolean, // Keep focus on form after posting autoFocus: Boolean, // Steal focus when form is opened fileLimit: Number, // Chats only support 1 attachment :( - submitOnEnter: Boolean, emojiPickerPlacement: String, optimisticPosting: Boolean, // Don't wait for confirmation that post is done @@ -562,6 +562,9 @@ const PostStatusForm = { useMergedConfigStore().mergedConfig.hideScopeNotice ) }, + submitOnEnter() { + return this.chatView && this.mergedConfig.chatSubmitOnEnter + }, // Global stuff currentUser() { diff --git a/src/components/settings_modal/tabs/composing_tab.vue b/src/components/settings_modal/tabs/composing_tab.vue index 755539096..b8c156bd3 100644 --- a/src/components/settings_modal/tabs/composing_tab.vue +++ b/src/components/settings_modal/tabs/composing_tab.vue @@ -83,6 +83,13 @@ {{ $t('settings.subject_line_behavior') }} +
  • + + {{ $t('settings.submit_on_enter_in_chats') }} + +
  • {{ $t('settings.attachments') }} diff --git a/src/i18n/en.json b/src/i18n/en.json index 0da52d5c3..60fcaf1dd 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -780,6 +780,7 @@ "subject_line_email": "Like email: \"re: subject\"", "subject_line_mastodon": "Like mastodon: copy as is", "subject_line_noop": "Do not copy", + "submit_on_enter_in_chats": "Send message on Enter in chats", "force_theme_recompilation_debug": "Disable theme cahe, force recompile on each boot", "conversation_display": "Conversation display style", "conversation_display_tree": "Tree-style", diff --git a/src/modules/default_config_state.js b/src/modules/default_config_state.js index d9a2ba247..9935e88ce 100644 --- a/src/modules/default_config_state.js +++ b/src/modules/default_config_state.js @@ -673,6 +673,11 @@ export const LOCAL_DEFAULT_CONFIG_DEFINITIONS = { type: 'string', default: null, }, + chatSubmitOnEnter: { + description: 'Post status on enter key in chats and chat view', + type: 'boolean', + default: false, + }, themeDebug: { description: 'Debug mode that uses computed backgrounds instead of real ones to debug contrast functions',