page_params: Move queue parameters to server_events.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
Anders Kaseorg 2024-02-12 14:36:07 -08:00 committed by Tim Abbott
parent 26df98a2fb
commit 2d575ae576
5 changed files with 25 additions and 10 deletions

View File

@ -90,7 +90,7 @@ export function create_message_object() {
type: compose_state.get_message_type(),
content: compose_state.message_content(),
sender_id: page_params.user_id,
queue_id: page_params.queue_id,
queue_id: server_events.queue_id,
stream_id: undefined,
};
message.topic = "";

View File

@ -16,6 +16,10 @@ import * as watchdog from "./watchdog";
// Docs: https://zulip.readthedocs.io/en/latest/subsystems/events-system.html
export let queue_id;
let last_event_id;
let event_queue_longpoll_timeout_seconds;
let waiting_on_homeview_load = true;
let events_stored_while_loading = [];
@ -172,8 +176,8 @@ function get_events({dont_block = false} = {}) {
watchdog.set_suspect_offline(true);
}
if (get_events_params.queue_id === undefined) {
get_events_params.queue_id = page_params.queue_id;
get_events_params.last_event_id = page_params.last_event_id;
get_events_params.queue_id = queue_id;
get_events_params.last_event_id = last_event_id;
}
if (get_events_xhr !== undefined) {
@ -190,7 +194,7 @@ function get_events({dont_block = false} = {}) {
get_events_xhr = channel.get({
url: "/json/events",
data: get_events_params,
timeout: page_params.event_queue_longpoll_timeout_seconds * 1000,
timeout: event_queue_longpoll_timeout_seconds * 1000,
success(data) {
watchdog.set_suspect_offline(false);
try {
@ -283,7 +287,11 @@ export function home_view_loaded() {
get_events_success([]);
}
export function initialize() {
export function initialize(params) {
queue_id = params.queue_id;
last_event_id = params.last_event_id;
event_queue_longpoll_timeout_seconds = params.event_queue_longpoll_timeout_seconds;
reload.add_reload_hook(cleanup_event_queue);
watchdog.on_unsuspend(() => {
// Immediately poll for new events on unsuspend
@ -304,7 +312,7 @@ function cleanup_event_queue() {
event_queue_expired = true;
channel.del({
url: "/json/events",
data: {queue_id: page_params.queue_id},
data: {queue_id},
ignore_reload: true,
});
}

View File

@ -109,7 +109,7 @@ export function reply_message(opts) {
const reply = {
sender_id: page_params.user_id,
queue_id: page_params.queue_id,
queue_id: server_events.queue_id,
local_id,
};

View File

@ -481,6 +481,12 @@ export function initialize_everything() {
const user_settings_params = pop_fields("user_settings");
const realm_settings_defaults_params = pop_fields("realm_user_settings_defaults");
const scheduled_messages_params = pop_fields("scheduled_messages");
const server_events_params = pop_fields(
"queue_id",
"server_generation",
"event_queue_longpoll_timeout_seconds",
"last_event_id",
);
/* To store theme data for spectators, we need to initialize
user_settings before setting the theme. */
@ -613,7 +619,7 @@ export function initialize_everything() {
overlays.initialize();
invite.initialize();
message_view_header.initialize();
server_events.initialize();
server_events.initialize(server_events_params);
user_status.initialize(user_status_params);
compose_recipient.initialize();
compose_pm_pill.initialize({

View File

@ -18,6 +18,7 @@ const sent_messages = mock_esm("../src/sent_messages", {
}),
start_send: noop,
});
const server_events = mock_esm("../src/server_events");
const people = zrequire("people");
const transmit = zrequire("transmit");
@ -150,7 +151,7 @@ run_test("reply_message_stream", ({override}) => {
});
page_params.user_id = 44;
page_params.queue_id = 66;
server_events.queue_id = 66;
sent_messages.get_new_local_id = () => "99";
transmit.reply_message({
@ -191,7 +192,7 @@ run_test("reply_message_private", ({override}) => {
});
page_params.user_id = 155;
page_params.queue_id = 177;
server_events.queue_id = 177;
sent_messages.get_new_local_id = () => "199";
transmit.reply_message({