mirror of
https://github.com/zulip/zulip.git
synced 2025-11-19 05:58:25 +00:00
js: Convert static/js/floating_recipient_bar.js to ES6 module.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
committed by
Tim Abbott
parent
e58666e512
commit
68732d4581
@@ -145,7 +145,6 @@
|
|||||||
"emoji_picker": false,
|
"emoji_picker": false,
|
||||||
"favicon": false,
|
"favicon": false,
|
||||||
"flatpickr": false,
|
"flatpickr": false,
|
||||||
"floating_recipient_bar": false,
|
|
||||||
"gear_menu": false,
|
"gear_menu": false,
|
||||||
"hash_util": false,
|
"hash_util": false,
|
||||||
"hashchange": false,
|
"hashchange": false,
|
||||||
|
|||||||
@@ -25,7 +25,8 @@ const admin = set_global("admin", {});
|
|||||||
const drafts = {__esModule: true};
|
const drafts = {__esModule: true};
|
||||||
rewiremock("../../static/js/drafts").with(drafts);
|
rewiremock("../../static/js/drafts").with(drafts);
|
||||||
set_global("favicon", {});
|
set_global("favicon", {});
|
||||||
const floating_recipient_bar = set_global("floating_recipient_bar", {});
|
const floating_recipient_bar = {__esModule: true};
|
||||||
|
rewiremock("../../static/js/floating_recipient_bar").with(floating_recipient_bar);
|
||||||
const info_overlay = set_global("info_overlay", {});
|
const info_overlay = set_global("info_overlay", {});
|
||||||
const message_viewport = {__esModule: true};
|
const message_viewport = {__esModule: true};
|
||||||
rewiremock("../../static/js/message_viewport").with(message_viewport);
|
rewiremock("../../static/js/message_viewport").with(message_viewport);
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import _ from "lodash";
|
|||||||
import render_archive_message_group from "../templates/archive_message_group.hbs";
|
import render_archive_message_group from "../templates/archive_message_group.hbs";
|
||||||
|
|
||||||
import * as color_data from "./color_data";
|
import * as color_data from "./color_data";
|
||||||
|
import * as floating_recipient_bar from "./floating_recipient_bar";
|
||||||
|
|
||||||
const {format, isSameDay} = require("date-fns");
|
const {format, isSameDay} = require("date-fns");
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,6 @@ import "../narrow";
|
|||||||
import "../reload";
|
import "../reload";
|
||||||
import "../compose_actions";
|
import "../compose_actions";
|
||||||
import "../subs";
|
import "../subs";
|
||||||
import "../floating_recipient_bar";
|
|
||||||
import "../lightbox";
|
import "../lightbox";
|
||||||
import "../ui_report";
|
import "../ui_report";
|
||||||
import "../message_scroll";
|
import "../message_scroll";
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import _ from "lodash";
|
import _ from "lodash";
|
||||||
|
|
||||||
import * as compose_state from "./compose_state";
|
import * as compose_state from "./compose_state";
|
||||||
|
import * as floating_recipient_bar from "./floating_recipient_bar";
|
||||||
import * as message_viewport from "./message_viewport";
|
import * as message_viewport from "./message_viewport";
|
||||||
import * as people from "./people";
|
import * as people from "./people";
|
||||||
import * as rows from "./rows";
|
import * as rows from "./rows";
|
||||||
|
|||||||
@@ -1,6 +1,4 @@
|
|||||||
"use strict";
|
import * as rows from "./rows";
|
||||||
|
|
||||||
const rows = require("./rows");
|
|
||||||
|
|
||||||
let is_floating_recipient_bar_showing = false;
|
let is_floating_recipient_bar_showing = false;
|
||||||
|
|
||||||
@@ -8,7 +6,7 @@ function top_offset(elem) {
|
|||||||
return elem.offset().top - $("#message_view_header").safeOuterHeight();
|
return elem.offset().top - $("#message_view_header").safeOuterHeight();
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.first_visible_message = function (bar) {
|
export function first_visible_message(bar) {
|
||||||
// The first truly visible message would be computed using the
|
// The first truly visible message would be computed using the
|
||||||
// bottom of the floating recipient bar; but we want the date from
|
// bottom of the floating recipient bar; but we want the date from
|
||||||
// the first visible message were the floating recipient bar not
|
// the first visible message were the floating recipient bar not
|
||||||
@@ -16,7 +14,7 @@ exports.first_visible_message = function (bar) {
|
|||||||
// overlaps the floating recipient bar's space (since you ).
|
// overlaps the floating recipient bar's space (since you ).
|
||||||
|
|
||||||
const messages = bar.children(".message_row");
|
const messages = bar.children(".message_row");
|
||||||
const frb_bottom = exports.get_frb_bottom();
|
const frb_bottom = get_frb_bottom();
|
||||||
const frb_top = frb_bottom - 25;
|
const frb_top = frb_bottom - 25;
|
||||||
let result;
|
let result;
|
||||||
|
|
||||||
@@ -77,10 +75,10 @@ exports.first_visible_message = function (bar) {
|
|||||||
|
|
||||||
// If none of the messages are visible, just take the last message.
|
// If none of the messages are visible, just take the last message.
|
||||||
return $(messages[messages.length - 1]);
|
return $(messages[messages.length - 1]);
|
||||||
};
|
}
|
||||||
|
|
||||||
exports.get_date = function (elem) {
|
export function get_date(elem) {
|
||||||
const message_row = exports.first_visible_message(elem);
|
const message_row = first_visible_message(elem);
|
||||||
|
|
||||||
if (!message_row || !message_row.length) {
|
if (!message_row || !message_row.length) {
|
||||||
return undefined;
|
return undefined;
|
||||||
@@ -103,17 +101,17 @@ exports.get_date = function (elem) {
|
|||||||
const rendered_date = timerender.render_date(time, undefined, today)[0].outerHTML;
|
const rendered_date = timerender.render_date(time, undefined, today)[0].outerHTML;
|
||||||
|
|
||||||
return rendered_date;
|
return rendered_date;
|
||||||
};
|
}
|
||||||
|
|
||||||
exports.get_frb_bottom = function () {
|
export function get_frb_bottom() {
|
||||||
const bar = $("#floating_recipient_bar");
|
const bar = $("#floating_recipient_bar");
|
||||||
const bar_top = top_offset(bar);
|
const bar_top = top_offset(bar);
|
||||||
const bar_bottom = bar_top + bar.safeOuterHeight();
|
const bar_bottom = bar_top + bar.safeOuterHeight();
|
||||||
|
|
||||||
return bar_bottom;
|
return bar_bottom;
|
||||||
};
|
}
|
||||||
|
|
||||||
exports.relevant_recipient_bars = function () {
|
export function relevant_recipient_bars() {
|
||||||
let elems = [];
|
let elems = [];
|
||||||
|
|
||||||
// This line of code does a reverse traversal
|
// This line of code does a reverse traversal
|
||||||
@@ -122,7 +120,7 @@ exports.relevant_recipient_bars = function () {
|
|||||||
// not exactly where we want. The value we get
|
// not exactly where we want. The value we get
|
||||||
// may be be too far up in the feed, but we can
|
// may be be too far up in the feed, but we can
|
||||||
// deal with that later.
|
// deal with that later.
|
||||||
let first_elem = exports.candidate_recipient_bar();
|
let first_elem = candidate_recipient_bar();
|
||||||
|
|
||||||
if (!first_elem) {
|
if (!first_elem) {
|
||||||
first_elem = $(".focused_table").find(".recipient_row").first();
|
first_elem = $(".focused_table").find(".recipient_row").first();
|
||||||
@@ -185,7 +183,7 @@ exports.relevant_recipient_bars = function () {
|
|||||||
let need_frb;
|
let need_frb;
|
||||||
|
|
||||||
if (i === 0) {
|
if (i === 0) {
|
||||||
date_html = exports.get_date(elem);
|
date_html = get_date(elem);
|
||||||
need_frb = top_offset(elem) < 0;
|
need_frb = top_offset(elem) < 0;
|
||||||
} else {
|
} else {
|
||||||
date_html = elem.find(".recipient_row_date").html();
|
date_html = elem.find(".recipient_row_date").html();
|
||||||
@@ -221,9 +219,9 @@ exports.relevant_recipient_bars = function () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return items;
|
return items;
|
||||||
};
|
}
|
||||||
|
|
||||||
exports.candidate_recipient_bar = function () {
|
export function candidate_recipient_bar() {
|
||||||
// Find a recipient bar that is close to being onscreen
|
// Find a recipient bar that is close to being onscreen
|
||||||
// but above the "top". This function is guaranteed to
|
// but above the "top". This function is guaranteed to
|
||||||
// return **some** recipient bar that is above the fold,
|
// return **some** recipient bar that is above the fold,
|
||||||
@@ -257,7 +255,7 @@ exports.candidate_recipient_bar = function () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return undefined;
|
return undefined;
|
||||||
};
|
}
|
||||||
|
|
||||||
function show_floating_recipient_bar() {
|
function show_floating_recipient_bar() {
|
||||||
if (!is_floating_recipient_bar_showing) {
|
if (!is_floating_recipient_bar_showing) {
|
||||||
@@ -300,35 +298,33 @@ function replace_floating_recipient_bar(source_info) {
|
|||||||
show_floating_recipient_bar();
|
show_floating_recipient_bar();
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.hide = function () {
|
export function hide() {
|
||||||
if (is_floating_recipient_bar_showing) {
|
if (is_floating_recipient_bar_showing) {
|
||||||
$("#floating_recipient_bar").css("visibility", "hidden");
|
$("#floating_recipient_bar").css("visibility", "hidden");
|
||||||
is_floating_recipient_bar_showing = false;
|
is_floating_recipient_bar_showing = false;
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
|
||||||
exports.de_clutter_dates = function (items) {
|
export function de_clutter_dates(items) {
|
||||||
for (const item of items) {
|
for (const item of items) {
|
||||||
item.elem.find(".recipient_row_date").toggle(item.show_date);
|
item.elem.find(".recipient_row_date").toggle(item.show_date);
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
|
||||||
exports.update = function () {
|
export function update() {
|
||||||
const items = exports.relevant_recipient_bars();
|
const items = relevant_recipient_bars();
|
||||||
|
|
||||||
if (!items || items.length === 0) {
|
if (!items || items.length === 0) {
|
||||||
exports.hide();
|
hide();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.de_clutter_dates(items);
|
de_clutter_dates(items);
|
||||||
|
|
||||||
if (!items[0].need_frb) {
|
if (!items[0].need_frb) {
|
||||||
exports.hide();
|
hide();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
replace_floating_recipient_bar(items[0]);
|
replace_floating_recipient_bar(items[0]);
|
||||||
};
|
}
|
||||||
|
|
||||||
window.floating_recipient_bar = exports;
|
|
||||||
|
|||||||
1
static/js/global.d.ts
vendored
1
static/js/global.d.ts
vendored
@@ -22,7 +22,6 @@ declare let current_msg_list: any;
|
|||||||
declare let emoji: any;
|
declare let emoji: any;
|
||||||
declare let emoji_picker: any;
|
declare let emoji_picker: any;
|
||||||
declare let favicon: any;
|
declare let favicon: any;
|
||||||
declare let floating_recipient_bar: any;
|
|
||||||
declare let gear_menu: any;
|
declare let gear_menu: any;
|
||||||
declare let hashchange: any;
|
declare let hashchange: any;
|
||||||
declare let hash_util: any;
|
declare let hash_util: any;
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
const drafts = require("./drafts");
|
const drafts = require("./drafts");
|
||||||
|
const floating_recipient_bar = require("./floating_recipient_bar");
|
||||||
const invite = require("./invite");
|
const invite = require("./invite");
|
||||||
const message_viewport = require("./message_viewport");
|
const message_viewport = require("./message_viewport");
|
||||||
const top_left_corner = require("./top_left_corner");
|
const top_left_corner = require("./top_left_corner");
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
const _ = require("lodash");
|
const _ = require("lodash");
|
||||||
|
|
||||||
|
const floating_recipient_bar = require("./floating_recipient_bar");
|
||||||
const loading = require("./loading");
|
const loading = require("./loading");
|
||||||
const message_viewport = require("./message_viewport");
|
const message_viewport = require("./message_viewport");
|
||||||
const narrow_state = require("./narrow_state");
|
const narrow_state = require("./narrow_state");
|
||||||
|
|||||||
Reference in New Issue
Block a user