mirror of
https://github.com/zulip/zulip.git
synced 2025-11-11 09:27:43 +00:00
compose: Extract method to get compose click target.
This commit is contained in:
@@ -21,7 +21,6 @@ import * as markdown from "./markdown";
|
|||||||
import * as notifications from "./notifications";
|
import * as notifications from "./notifications";
|
||||||
import {page_params} from "./page_params";
|
import {page_params} from "./page_params";
|
||||||
import * as people from "./people";
|
import * as people from "./people";
|
||||||
import * as popover_menus from "./popover_menus";
|
|
||||||
import * as reminder from "./reminder";
|
import * as reminder from "./reminder";
|
||||||
import * as rendered_markdown from "./rendered_markdown";
|
import * as rendered_markdown from "./rendered_markdown";
|
||||||
import * as resize from "./resize";
|
import * as resize from "./resize";
|
||||||
@@ -623,14 +622,12 @@ export function initialize() {
|
|||||||
|
|
||||||
let target_textarea;
|
let target_textarea;
|
||||||
let edit_message_id;
|
let edit_message_id;
|
||||||
const compose_control_buttons_popover = popover_menus.get_compose_control_buttons_popover();
|
const compose_click_target = compose_ui.get_compose_click_target(e);
|
||||||
if (compose_control_buttons_popover) {
|
if ($(compose_click_target).parents(".message_edit_form").length === 1) {
|
||||||
target_textarea = $(compose_control_buttons_popover.reference)
|
edit_message_id = rows.id($(compose_click_target).parents(".message_row"));
|
||||||
.closest("form")
|
|
||||||
.find("textarea");
|
|
||||||
} else if ($(e.target).parents(".message_edit_form").length === 1) {
|
|
||||||
edit_message_id = rows.id($(e.target).parents(".message_row"));
|
|
||||||
target_textarea = $(`#edit_form_${CSS.escape(edit_message_id)} .message_edit_content`);
|
target_textarea = $(`#edit_form_${CSS.escape(edit_message_id)} .message_edit_content`);
|
||||||
|
} else {
|
||||||
|
target_textarea = $(compose_click_target).closest("form").find("textarea");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!instance.calendarContainer) {
|
if (!instance.calendarContainer) {
|
||||||
@@ -640,7 +637,7 @@ export function initialize() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
instance = composebox_typeahead.show_flatpickr(
|
instance = composebox_typeahead.show_flatpickr(
|
||||||
$(e.target)[0],
|
$(compose_click_target)[0],
|
||||||
on_timestamp_selection,
|
on_timestamp_selection,
|
||||||
new Date(),
|
new Date(),
|
||||||
{
|
{
|
||||||
@@ -706,19 +703,9 @@ export function initialize() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
$("body").on("click", ".formatting_button", (e) => {
|
$("body").on("click", ".formatting_button", (e) => {
|
||||||
const $elt = $(e.target);
|
const $compose_click_target = $(compose_ui.get_compose_click_target(e));
|
||||||
|
const textarea = $compose_click_target.closest("form").find("textarea");
|
||||||
const compose_control_buttons_popover = popover_menus.get_compose_control_buttons_popover();
|
const format_type = $(e.target).attr("data-format-type");
|
||||||
let textarea;
|
|
||||||
if (compose_control_buttons_popover) {
|
|
||||||
textarea = $(compose_control_buttons_popover.reference)
|
|
||||||
.closest("form")
|
|
||||||
.find("textarea");
|
|
||||||
} else {
|
|
||||||
textarea = $elt.closest("form").find("textarea");
|
|
||||||
}
|
|
||||||
|
|
||||||
const format_type = $elt.attr("data-format-type");
|
|
||||||
compose_ui.format_text(textarea, format_type);
|
compose_ui.format_text(textarea, format_type);
|
||||||
textarea.trigger("focus");
|
textarea.trigger("focus");
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import * as common from "./common";
|
|||||||
import {$t} from "./i18n";
|
import {$t} from "./i18n";
|
||||||
import * as loading from "./loading";
|
import * as loading from "./loading";
|
||||||
import * as people from "./people";
|
import * as people from "./people";
|
||||||
|
import * as popover_menus from "./popover_menus";
|
||||||
import * as rtl from "./rtl";
|
import * as rtl from "./rtl";
|
||||||
import * as settings_data from "./settings_data";
|
import * as settings_data from "./settings_data";
|
||||||
import * as user_status from "./user_status";
|
import * as user_status from "./user_status";
|
||||||
@@ -401,3 +402,11 @@ export function show_compose_spinner() {
|
|||||||
$("#compose-send-button span").hide();
|
$("#compose-send-button span").hide();
|
||||||
$("#compose-send-button").addClass("disable-btn");
|
$("#compose-send-button").addClass("disable-btn");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function get_compose_click_target(e) {
|
||||||
|
const compose_control_buttons_popover = popover_menus.get_compose_control_buttons_popover();
|
||||||
|
if (compose_control_buttons_popover) {
|
||||||
|
return compose_control_buttons_popover.reference;
|
||||||
|
}
|
||||||
|
return e.target;
|
||||||
|
}
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ import * as blueslip from "./blueslip";
|
|||||||
import * as compose_ui from "./compose_ui";
|
import * as compose_ui from "./compose_ui";
|
||||||
import * as message_lists from "./message_lists";
|
import * as message_lists from "./message_lists";
|
||||||
import * as message_store from "./message_store";
|
import * as message_store from "./message_store";
|
||||||
import * as popover_menus from "./popover_menus";
|
|
||||||
import * as popovers from "./popovers";
|
import * as popovers from "./popovers";
|
||||||
import * as reactions from "./reactions";
|
import * as reactions from "./reactions";
|
||||||
import * as rows from "./rows";
|
import * as rows from "./rows";
|
||||||
@@ -701,22 +700,19 @@ export function register_click_handlers() {
|
|||||||
hide_emoji_popover();
|
hide_emoji_popover();
|
||||||
});
|
});
|
||||||
|
|
||||||
$("body").on("click", ".emoji_map", function (e) {
|
$("body").on("click", ".emoji_map", (e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
const compose_control_buttons_popover = popover_menus.get_compose_control_buttons_popover();
|
|
||||||
if (compose_control_buttons_popover) {
|
|
||||||
e.target = compose_control_buttons_popover.reference;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($(e.target).parents(".message_edit_form").length === 1) {
|
const compose_click_target = compose_ui.get_compose_click_target(e);
|
||||||
|
if ($(compose_click_target).parents(".message_edit_form").length === 1) {
|
||||||
// Store message id in global variable edit_message_id so that
|
// Store message id in global variable edit_message_id so that
|
||||||
// its value can be further used to correctly find the message textarea element.
|
// its value can be further used to correctly find the message textarea element.
|
||||||
edit_message_id = rows.get_message_id(e.target);
|
edit_message_id = rows.get_message_id(compose_click_target);
|
||||||
} else {
|
} else {
|
||||||
edit_message_id = null;
|
edit_message_id = null;
|
||||||
}
|
}
|
||||||
toggle_emoji_popover(this);
|
toggle_emoji_popover(compose_click_target);
|
||||||
});
|
});
|
||||||
|
|
||||||
$("#main_div").on("click", ".reaction_button", function (e) {
|
$("#main_div").on("click", ".reaction_button", function (e) {
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ import * as blueslip from "./blueslip";
|
|||||||
import * as compose_ui from "./compose_ui";
|
import * as compose_ui from "./compose_ui";
|
||||||
import {media_breakpoints_num} from "./css_variables";
|
import {media_breakpoints_num} from "./css_variables";
|
||||||
import {page_params} from "./page_params";
|
import {page_params} from "./page_params";
|
||||||
import * as popover_menus from "./popover_menus";
|
|
||||||
import * as popovers from "./popovers";
|
import * as popovers from "./popovers";
|
||||||
import * as rows from "./rows";
|
import * as rows from "./rows";
|
||||||
import * as ui_util from "./ui_util";
|
import * as ui_util from "./ui_util";
|
||||||
@@ -221,19 +220,15 @@ export function initialize() {
|
|||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
|
|
||||||
const compose_control_buttons_popover = popover_menus.get_compose_control_buttons_popover();
|
const compose_click_target = compose_ui.get_compose_click_target(e);
|
||||||
if (compose_control_buttons_popover) {
|
if (active_popover_element && active_popover_element.get()[0] === compose_click_target) {
|
||||||
e.target = compose_control_buttons_popover.reference;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (active_popover_element && active_popover_element.get()[0] === e.target) {
|
|
||||||
// Hide giphy popover if already active.
|
// Hide giphy popover if already active.
|
||||||
hide_giphy_popover();
|
hide_giphy_popover();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
popovers.hide_all();
|
popovers.hide_all();
|
||||||
|
|
||||||
const $elt = $(e.target);
|
const $elt = $(compose_click_target);
|
||||||
if ($elt.parents(".message_edit_form").length === 1) {
|
if ($elt.parents(".message_edit_form").length === 1) {
|
||||||
// Store message id in global variable edit_message_id so that
|
// Store message id in global variable edit_message_id so that
|
||||||
// its value can be further used to correctly find the message textarea element.
|
// its value can be further used to correctly find the message textarea element.
|
||||||
|
|||||||
Reference in New Issue
Block a user