mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 14:03:30 +00:00 
			
		
		
		
	keydown_util: Extract all 'Enter' events to one place.
This is a prep commit to fix #22062.
This commit is contained in:
		
				
					committed by
					
						
						Tim Abbott
					
				
			
			
				
	
			
			
			
						parent
						
							aeb9a27d0e
						
					
				
				
					commit
					d4379f9528
				
			@@ -1,4 +1,5 @@
 | 
			
		||||
import * as input_pill from "./input_pill";
 | 
			
		||||
import * as keydown_util from "./keydown_util";
 | 
			
		||||
import * as pill_typeahead from "./pill_typeahead";
 | 
			
		||||
import * as stream_pill from "./stream_pill";
 | 
			
		||||
import * as user_group_pill from "./user_group_pill";
 | 
			
		||||
@@ -109,7 +110,7 @@ export function set_up_handlers({
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    $parent_container.on("keyup", pill_selector, (e) => {
 | 
			
		||||
        if (e.key === "Enter") {
 | 
			
		||||
        if (keydown_util.is_enter_event(e)) {
 | 
			
		||||
            e.preventDefault();
 | 
			
		||||
            callback();
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -12,6 +12,7 @@ import * as compose_validate from "./compose_validate";
 | 
			
		||||
import * as emoji from "./emoji";
 | 
			
		||||
import * as flatpickr from "./flatpickr";
 | 
			
		||||
import {$t} from "./i18n";
 | 
			
		||||
import * as keydown_util from "./keydown_util";
 | 
			
		||||
import * as message_store from "./message_store";
 | 
			
		||||
import * as muted_users from "./muted_users";
 | 
			
		||||
import {page_params} from "./page_params";
 | 
			
		||||
@@ -137,7 +138,7 @@ export function should_enter_send(e) {
 | 
			
		||||
        // With the enter_sends setting, we should send
 | 
			
		||||
        // the message unless the user was holding a
 | 
			
		||||
        // modifier key.
 | 
			
		||||
        this_enter_sends = !has_modifier_key;
 | 
			
		||||
        this_enter_sends = !has_modifier_key && keydown_util.is_enter_event(e);
 | 
			
		||||
    } else {
 | 
			
		||||
        // If enter_sends is not enabled, just hitting
 | 
			
		||||
        // Enter should add a newline, but with a
 | 
			
		||||
@@ -194,7 +195,7 @@ let $nextFocus = false;
 | 
			
		||||
function handle_keydown(e) {
 | 
			
		||||
    const key = e.key;
 | 
			
		||||
 | 
			
		||||
    if (key === "Enter" || (key === "Tab" && !e.shiftKey)) {
 | 
			
		||||
    if (keydown_util.is_enter_event(e) || (key === "Tab" && !e.shiftKey)) {
 | 
			
		||||
        // Enter key or Tab key
 | 
			
		||||
        let target_sel;
 | 
			
		||||
 | 
			
		||||
@@ -256,7 +257,7 @@ function handle_keydown(e) {
 | 
			
		||||
function handle_keyup(e) {
 | 
			
		||||
    if (
 | 
			
		||||
        // Enter key or Tab key
 | 
			
		||||
        (e.key === "Enter" || (e.key === "Tab" && !e.shiftKey)) &&
 | 
			
		||||
        (keydown_util.is_enter_event(e) || (e.key === "Tab" && !e.shiftKey)) &&
 | 
			
		||||
        $nextFocus
 | 
			
		||||
    ) {
 | 
			
		||||
        $nextFocus.trigger("focus");
 | 
			
		||||
 
 | 
			
		||||
@@ -6,6 +6,7 @@ import render_dropdown_list from "../templates/settings/dropdown_list.hbs";
 | 
			
		||||
 | 
			
		||||
import * as blueslip from "./blueslip";
 | 
			
		||||
import {$t} from "./i18n";
 | 
			
		||||
import * as keydown_util from "./keydown_util";
 | 
			
		||||
import * as ListWidget from "./list_widget";
 | 
			
		||||
 | 
			
		||||
export class DropdownListWidget {
 | 
			
		||||
@@ -82,7 +83,7 @@ export class DropdownListWidget {
 | 
			
		||||
                    `.${CSS.escape(this.widget_name)}_setting`,
 | 
			
		||||
                );
 | 
			
		||||
                if (e.type === "keypress") {
 | 
			
		||||
                    if (e.key === "Enter") {
 | 
			
		||||
                    if (keydown_util.is_enter_event(e)) {
 | 
			
		||||
                        $setting_elem.find(".dropdown-menu").dropdown("toggle");
 | 
			
		||||
                    } else {
 | 
			
		||||
                        return;
 | 
			
		||||
@@ -533,7 +534,7 @@ export class MultiSelectDropdownListWidget extends DropdownListWidget {
 | 
			
		||||
        ).expectOne();
 | 
			
		||||
 | 
			
		||||
        $dropdown_list_body.on("click keypress", ".list_item", (e) => {
 | 
			
		||||
            if (e.type === "keypress" && e.key !== "Enter") {
 | 
			
		||||
            if (e.type === "keypress" && !keydown_util.is_enter_event(e)) {
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -10,6 +10,7 @@ import render_emoji_showcase from "../templates/emoji_showcase.hbs";
 | 
			
		||||
import * as blueslip from "./blueslip";
 | 
			
		||||
import * as compose_ui from "./compose_ui";
 | 
			
		||||
import * as emoji from "./emoji";
 | 
			
		||||
import * as keydown_util from "./keydown_util";
 | 
			
		||||
import * as message_lists from "./message_lists";
 | 
			
		||||
import * as message_store from "./message_store";
 | 
			
		||||
import {page_params} from "./page_params";
 | 
			
		||||
@@ -306,7 +307,7 @@ function is_status_emoji(emoji) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function process_enter_while_filtering(e) {
 | 
			
		||||
    if (e.key === "Enter") {
 | 
			
		||||
    if (keydown_util.is_enter_event(e)) {
 | 
			
		||||
        e.preventDefault();
 | 
			
		||||
        const $first_emoji = get_rendered_emoji(0, 0);
 | 
			
		||||
        if ($first_emoji) {
 | 
			
		||||
 
 | 
			
		||||
@@ -6,6 +6,7 @@ import render_input_pill from "../templates/input_pill.hbs";
 | 
			
		||||
 | 
			
		||||
import * as blueslip from "./blueslip";
 | 
			
		||||
import * as compose from "./compose";
 | 
			
		||||
import * as keydown_util from "./keydown_util";
 | 
			
		||||
import * as ui_util from "./ui_util";
 | 
			
		||||
 | 
			
		||||
// See https://zulip.readthedocs.io/en/latest/subsystems/input-pills.html
 | 
			
		||||
@@ -243,7 +244,7 @@ export function create(opts) {
 | 
			
		||||
 | 
			
		||||
    {
 | 
			
		||||
        store.$parent.on("keydown", ".input", (e) => {
 | 
			
		||||
            if (e.key === "Enter") {
 | 
			
		||||
            if (keydown_util.is_enter_event(e)) {
 | 
			
		||||
                // regardless of the value of the input, the ENTER keyword
 | 
			
		||||
                // should be ignored in favor of keeping content to one line
 | 
			
		||||
                // always.
 | 
			
		||||
 
 | 
			
		||||
@@ -13,6 +13,7 @@ import * as browser_history from "./browser_history";
 | 
			
		||||
import * as channel from "./channel";
 | 
			
		||||
import * as common from "./common";
 | 
			
		||||
import {$t, $t_html} from "./i18n";
 | 
			
		||||
import * as keydown_util from "./keydown_util";
 | 
			
		||||
import * as overlays from "./overlays";
 | 
			
		||||
import {page_params} from "./page_params";
 | 
			
		||||
import * as settings_config from "./settings_config";
 | 
			
		||||
@@ -210,7 +211,7 @@ export function launch() {
 | 
			
		||||
 | 
			
		||||
    // Ctrl + Enter key to submit form
 | 
			
		||||
    $("#invite-user").on("keydown", (e) => {
 | 
			
		||||
        if (e.key === "Enter" && e.ctrlKey) {
 | 
			
		||||
        if (keydown_util.is_enter_event(e) && e.ctrlKey) {
 | 
			
		||||
            submit_invitation_form();
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
@@ -333,7 +334,7 @@ export function initialize() {
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    $("#custom-expiration-time-input").on("keydown", (e) => {
 | 
			
		||||
        if (e.key === "Enter") {
 | 
			
		||||
        if (keydown_util.is_enter_event(e)) {
 | 
			
		||||
            e.preventDefault();
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -31,3 +31,7 @@ export function handle(opts: {
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function is_enter_event(event: JQuery.KeyDownEvent): boolean {
 | 
			
		||||
    return event.key === "Enter";
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -11,6 +11,7 @@ import render_profile_incomplete_alert_content from "../templates/navbar_alerts/
 | 
			
		||||
import render_server_needs_upgrade_alert_content from "../templates/navbar_alerts/server_needs_upgrade.hbs";
 | 
			
		||||
 | 
			
		||||
import * as compose_ui from "./compose_ui";
 | 
			
		||||
import * as keydown_util from "./keydown_util";
 | 
			
		||||
import {localstorage} from "./localstorage";
 | 
			
		||||
import * as notifications from "./notifications";
 | 
			
		||||
import {page_params} from "./page_params";
 | 
			
		||||
@@ -233,7 +234,7 @@ export function initialize() {
 | 
			
		||||
    // Treat Enter with links in the navbar alerts UI focused like a click.,
 | 
			
		||||
    $("#navbar_alerts_wrapper").on("keyup", ".alert-link[role=button]", function (e) {
 | 
			
		||||
        e.stopPropagation();
 | 
			
		||||
        if (e.key === "Enter") {
 | 
			
		||||
        if (keydown_util.is_enter_event(e)) {
 | 
			
		||||
            $(this).trigger("click");
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
 
 | 
			
		||||
@@ -6,6 +6,7 @@ import render_widgets_poll_widget_results from "../templates/widgets/poll_widget
 | 
			
		||||
 | 
			
		||||
import * as blueslip from "./blueslip";
 | 
			
		||||
import {$t} from "./i18n";
 | 
			
		||||
import * as keydown_util from "./keydown_util";
 | 
			
		||||
import * as people from "./people";
 | 
			
		||||
 | 
			
		||||
export function activate({
 | 
			
		||||
@@ -127,7 +128,7 @@ export function activate({
 | 
			
		||||
        $elem.find("input.poll-question").on("keydown", (e) => {
 | 
			
		||||
            e.stopPropagation();
 | 
			
		||||
 | 
			
		||||
            if (e.key === "Enter") {
 | 
			
		||||
            if (keydown_util.is_enter_event(e)) {
 | 
			
		||||
                submit_question();
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
@@ -163,7 +164,7 @@ export function activate({
 | 
			
		||||
            e.stopPropagation();
 | 
			
		||||
            check_option_button();
 | 
			
		||||
 | 
			
		||||
            if (e.key === "Enter") {
 | 
			
		||||
            if (keydown_util.is_enter_event(e)) {
 | 
			
		||||
                submit_option();
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
 
 | 
			
		||||
@@ -3,6 +3,7 @@ import $ from "jquery";
 | 
			
		||||
import render_search_list_item from "../templates/search_list_item.hbs";
 | 
			
		||||
 | 
			
		||||
import {Filter} from "./filter";
 | 
			
		||||
import * as keydown_util from "./keydown_util";
 | 
			
		||||
import * as message_view_header from "./message_view_header";
 | 
			
		||||
import * as narrow from "./narrow";
 | 
			
		||||
import * as narrow_state from "./narrow_state";
 | 
			
		||||
@@ -136,7 +137,7 @@ export function initialize() {
 | 
			
		||||
    $searchbox_form
 | 
			
		||||
        .on("keydown", (e) => {
 | 
			
		||||
            update_button_visibility();
 | 
			
		||||
            if (e.key === "Enter" && $search_query_box.is(":focus")) {
 | 
			
		||||
            if (keydown_util.is_enter_event(e) && $search_query_box.is(":focus")) {
 | 
			
		||||
                // Don't submit the form so that the typeahead can instead
 | 
			
		||||
                // handle our Enter keypress. Any searching that needs
 | 
			
		||||
                // to be done will be handled in the keyup.
 | 
			
		||||
@@ -149,7 +150,7 @@ export function initialize() {
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (e.key === "Enter" && $search_query_box.is(":focus")) {
 | 
			
		||||
            if (keydown_util.is_enter_event(e) && $search_query_box.is(":focus")) {
 | 
			
		||||
                // We just pressed Enter and the box had focus, which
 | 
			
		||||
                // means we didn't use the typeahead at all.  In that
 | 
			
		||||
                // case, we should act as though we're searching by
 | 
			
		||||
 
 | 
			
		||||
@@ -15,6 +15,7 @@ import * as confirm_dialog from "./confirm_dialog";
 | 
			
		||||
import {csrf_token} from "./csrf";
 | 
			
		||||
import * as dialog_widget from "./dialog_widget";
 | 
			
		||||
import {$t, $t_html} from "./i18n";
 | 
			
		||||
import * as keydown_util from "./keydown_util";
 | 
			
		||||
import * as overlays from "./overlays";
 | 
			
		||||
import {page_params} from "./page_params";
 | 
			
		||||
import * as people from "./people";
 | 
			
		||||
@@ -384,7 +385,7 @@ export function set_up() {
 | 
			
		||||
                do_get_api_key();
 | 
			
		||||
            });
 | 
			
		||||
            $("#get_api_key_password").on("keydown", (e) => {
 | 
			
		||||
                if (e.key === "Enter") {
 | 
			
		||||
                if (keydown_util.is_enter_event(e)) {
 | 
			
		||||
                    e.preventDefault();
 | 
			
		||||
                    e.stopPropagation();
 | 
			
		||||
                    do_get_api_key();
 | 
			
		||||
 
 | 
			
		||||
@@ -10,6 +10,7 @@ import * as confirm_dialog from "./confirm_dialog";
 | 
			
		||||
import {csrf_token} from "./csrf";
 | 
			
		||||
import {DropdownListWidget} from "./dropdown_list_widget";
 | 
			
		||||
import {$t, $t_html, get_language_name} from "./i18n";
 | 
			
		||||
import * as keydown_util from "./keydown_util";
 | 
			
		||||
import * as loading from "./loading";
 | 
			
		||||
import {page_params} from "./page_params";
 | 
			
		||||
import * as realm_icon from "./realm_icon";
 | 
			
		||||
@@ -1135,7 +1136,7 @@ export function build_page() {
 | 
			
		||||
 | 
			
		||||
    $(".org-subsection-parent").on("keydown", "input", (e) => {
 | 
			
		||||
        e.stopPropagation();
 | 
			
		||||
        if (e.key === "Enter") {
 | 
			
		||||
        if (keydown_util.is_enter_event(e)) {
 | 
			
		||||
            e.preventDefault();
 | 
			
		||||
            $(e.target)
 | 
			
		||||
                .closest(".org-subsection-parent")
 | 
			
		||||
 
 | 
			
		||||
@@ -5,6 +5,7 @@ import render_admin_default_streams_list from "../templates/settings/admin_defau
 | 
			
		||||
import * as channel from "./channel";
 | 
			
		||||
import * as hash_util from "./hash_util";
 | 
			
		||||
import {$t_html} from "./i18n";
 | 
			
		||||
import * as keydown_util from "./keydown_util";
 | 
			
		||||
import * as ListWidget from "./list_widget";
 | 
			
		||||
import * as loading from "./loading";
 | 
			
		||||
import {page_params} from "./page_params";
 | 
			
		||||
@@ -110,7 +111,7 @@ export function build_page() {
 | 
			
		||||
    update_default_streams_table();
 | 
			
		||||
 | 
			
		||||
    $(".create_default_stream").on("keypress", (e) => {
 | 
			
		||||
        if (e.key === "Enter") {
 | 
			
		||||
        if (keydown_util.is_enter_event(e)) {
 | 
			
		||||
            e.preventDefault();
 | 
			
		||||
            e.stopPropagation();
 | 
			
		||||
            const $default_stream_input = $(".create_default_stream");
 | 
			
		||||
 
 | 
			
		||||
@@ -9,6 +9,7 @@ import * as channel from "./channel";
 | 
			
		||||
import * as confirm_dialog from "./confirm_dialog";
 | 
			
		||||
import * as dialog_widget from "./dialog_widget";
 | 
			
		||||
import {$t, $t_html} from "./i18n";
 | 
			
		||||
import * as keydown_util from "./keydown_util";
 | 
			
		||||
import {page_params} from "./page_params";
 | 
			
		||||
import * as people from "./people";
 | 
			
		||||
import * as pill_typeahead from "./pill_typeahead";
 | 
			
		||||
@@ -406,7 +407,7 @@ export function set_up() {
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    $("#user-groups").on("keypress", ".user-group h4 > span", (e) => {
 | 
			
		||||
        if (e.key === "Enter") {
 | 
			
		||||
        if (keydown_util.is_enter_event(e)) {
 | 
			
		||||
            e.preventDefault();
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
 
 | 
			
		||||
@@ -7,6 +7,7 @@ import render_subscription_invites_warning_modal from "../templates/confirm_dial
 | 
			
		||||
import * as channel from "./channel";
 | 
			
		||||
import * as confirm_dialog from "./confirm_dialog";
 | 
			
		||||
import {$t, $t_html} from "./i18n";
 | 
			
		||||
import * as keydown_util from "./keydown_util";
 | 
			
		||||
import * as loading from "./loading";
 | 
			
		||||
import {page_params} from "./page_params";
 | 
			
		||||
import * as people from "./people";
 | 
			
		||||
@@ -399,7 +400,7 @@ export function set_up_handlers() {
 | 
			
		||||
    // Do not allow the user to enter newline characters while typing out the
 | 
			
		||||
    // stream's description during it's creation.
 | 
			
		||||
    $container.on("keydown", "#create_stream_description", (e) => {
 | 
			
		||||
        if (e.key === "Enter") {
 | 
			
		||||
        if (keydown_util.is_enter_event(e)) {
 | 
			
		||||
            e.preventDefault();
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
 
 | 
			
		||||
@@ -15,6 +15,7 @@ import * as confirm_dialog from "./confirm_dialog";
 | 
			
		||||
import * as dialog_widget from "./dialog_widget";
 | 
			
		||||
import * as hash_util from "./hash_util";
 | 
			
		||||
import {$t, $t_html} from "./i18n";
 | 
			
		||||
import * as keydown_util from "./keydown_util";
 | 
			
		||||
import * as narrow_state from "./narrow_state";
 | 
			
		||||
import {page_params} from "./page_params";
 | 
			
		||||
import * as settings_config from "./settings_config";
 | 
			
		||||
@@ -560,7 +561,7 @@ export function initialize() {
 | 
			
		||||
    $("#manage_streams_container").on("keypress", "#change_stream_description", (e) => {
 | 
			
		||||
        // Stream descriptions can not be multiline, so disable enter key
 | 
			
		||||
        // to prevent new line
 | 
			
		||||
        if (e.key === "Enter") {
 | 
			
		||||
        if (keydown_util.is_enter_event(e)) {
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
        return true;
 | 
			
		||||
 
 | 
			
		||||
@@ -21,6 +21,7 @@ import * as drafts from "./drafts";
 | 
			
		||||
import {DropdownListWidget} from "./dropdown_list_widget";
 | 
			
		||||
import * as hash_util from "./hash_util";
 | 
			
		||||
import {$t, $t_html} from "./i18n";
 | 
			
		||||
import * as keydown_util from "./keydown_util";
 | 
			
		||||
import * as message_edit from "./message_edit";
 | 
			
		||||
import * as muted_topics_ui from "./muted_topics_ui";
 | 
			
		||||
import {page_params} from "./page_params";
 | 
			
		||||
@@ -634,7 +635,7 @@ export function register_click_handlers() {
 | 
			
		||||
        // and thus don't want to kill the natural bubbling of event.
 | 
			
		||||
        e.preventDefault();
 | 
			
		||||
 | 
			
		||||
        if (e.type === "keypress" && e.key !== "Enter") {
 | 
			
		||||
        if (e.type === "keypress" && !keydown_util.is_enter_event(e)) {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
        const stream_name = stream_data.maybe_get_stream_name(
 | 
			
		||||
 
 | 
			
		||||
@@ -16,6 +16,7 @@ import * as compose_state from "./compose_state";
 | 
			
		||||
import * as confirm_dialog from "./confirm_dialog";
 | 
			
		||||
import * as hash_util from "./hash_util";
 | 
			
		||||
import {$t, $t_html} from "./i18n";
 | 
			
		||||
import * as keydown_util from "./keydown_util";
 | 
			
		||||
import * as loading from "./loading";
 | 
			
		||||
import * as message_live_update from "./message_live_update";
 | 
			
		||||
import * as message_view_header from "./message_view_header";
 | 
			
		||||
@@ -663,7 +664,7 @@ export function setup_page(callback) {
 | 
			
		||||
        // streams, either explicitly via user_can_create_streams, or
 | 
			
		||||
        // implicitly because page_params.realm_is_zephyr_mirror_realm.
 | 
			
		||||
        $("#stream_filter input[type='text']").on("keypress", (e) => {
 | 
			
		||||
            if (e.key !== "Enter") {
 | 
			
		||||
            if (!keydown_util.is_enter_event(e)) {
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,7 @@
 | 
			
		||||
import $ from "jquery";
 | 
			
		||||
 | 
			
		||||
import * as keydown_util from "./keydown_util";
 | 
			
		||||
 | 
			
		||||
// Add functions to this that have no non-trivial
 | 
			
		||||
// dependencies other than jQuery.
 | 
			
		||||
 | 
			
		||||
@@ -27,7 +29,7 @@ export function blur_active_element(): void {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function convert_enter_to_click(e: JQuery.KeyDownEvent): void {
 | 
			
		||||
    if (e.key === "Enter") {
 | 
			
		||||
    if (keydown_util.is_enter_event(e)) {
 | 
			
		||||
        e.preventDefault();
 | 
			
		||||
        e.stopPropagation();
 | 
			
		||||
        $(e.currentTarget).trigger("click");
 | 
			
		||||
 
 | 
			
		||||
@@ -2,6 +2,7 @@ import $ from "jquery";
 | 
			
		||||
 | 
			
		||||
import * as channel from "./channel";
 | 
			
		||||
import {$t, $t_html} from "./i18n";
 | 
			
		||||
import * as keydown_util from "./keydown_util";
 | 
			
		||||
import * as loading from "./loading";
 | 
			
		||||
import * as ui_report from "./ui_report";
 | 
			
		||||
import * as user_group_create_members from "./user_group_create_members";
 | 
			
		||||
@@ -182,7 +183,7 @@ export function set_up_handlers() {
 | 
			
		||||
    // Do not allow the user to enter newline characters while typing out the
 | 
			
		||||
    // group's description during it's creation.
 | 
			
		||||
    $container.on("keydown", "#create_user_group_description", (e) => {
 | 
			
		||||
        if (e.key === "Enter") {
 | 
			
		||||
        if (keydown_util.is_enter_event(e)) {
 | 
			
		||||
            e.preventDefault();
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
 
 | 
			
		||||
@@ -6,6 +6,7 @@ import render_status_emoji_selector from "../templates/status_emoji_selector.hbs
 | 
			
		||||
import * as dialog_widget from "./dialog_widget";
 | 
			
		||||
import * as emoji from "./emoji";
 | 
			
		||||
import {$t, $t_html} from "./i18n";
 | 
			
		||||
import * as keydown_util from "./keydown_util";
 | 
			
		||||
import * as people from "./people";
 | 
			
		||||
import * as user_status from "./user_status";
 | 
			
		||||
 | 
			
		||||
@@ -146,7 +147,7 @@ function user_status_post_render() {
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    input_field().on("keypress", (event) => {
 | 
			
		||||
        if (event.key === "Enter") {
 | 
			
		||||
        if (keydown_util.is_enter_event(event)) {
 | 
			
		||||
            event.preventDefault();
 | 
			
		||||
 | 
			
		||||
            submit_new_status();
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user