mirror of
https://github.com/zulip/zulip.git
synced 2025-11-14 02:48:00 +00:00
message-fetch: Refactor handle_operators_supporting_id_based_api.
Instead of updating the object with all of the parameters for the message fetch, we only update the narrow parameter.
This commit is contained in:
committed by
Tim Abbott
parent
697e7acaaa
commit
62c2f35995
@@ -213,24 +213,12 @@ function get_messages_success(data: MessageFetchResponse, opts: MessageFetchOpti
|
|||||||
process_result(data, opts);
|
process_result(data, opts);
|
||||||
}
|
}
|
||||||
|
|
||||||
// This function modifies the data.narrow filters to use integer IDs
|
// This function modifies the narrow data to use integer IDs instead of
|
||||||
// instead of strings if it is supported. We currently don't set or
|
// strings if it is supported for that operator. We currently don't set
|
||||||
// convert user emails to user IDs directly in the Filter code
|
// or convert user emails to IDs directly in the Filter code because
|
||||||
// because doing so breaks the app in various modules that expect a
|
// doing so breaks the app in various modules that expect a string of
|
||||||
// string of user emails.
|
// user emails.
|
||||||
function handle_operators_supporting_id_based_api(data: {
|
function handle_operators_supporting_id_based_api(narrow_parameter: string): string {
|
||||||
anchor: string | number;
|
|
||||||
num_before: number;
|
|
||||||
num_after: number;
|
|
||||||
client_gravatar: boolean;
|
|
||||||
narrow?: string;
|
|
||||||
}): {
|
|
||||||
anchor: string | number;
|
|
||||||
num_before: number;
|
|
||||||
num_after: number;
|
|
||||||
client_gravatar: boolean;
|
|
||||||
narrow?: string;
|
|
||||||
} {
|
|
||||||
const operators_supporting_ids = new Set(["dm", "pm-with"]);
|
const operators_supporting_ids = new Set(["dm", "pm-with"]);
|
||||||
const operators_supporting_id = new Set([
|
const operators_supporting_id = new Set([
|
||||||
"id",
|
"id",
|
||||||
@@ -240,11 +228,7 @@ function handle_operators_supporting_id_based_api(data: {
|
|||||||
"dm-including",
|
"dm-including",
|
||||||
]);
|
]);
|
||||||
|
|
||||||
if (data.narrow === undefined) {
|
const parsed_narrow_data = z.array(narrow_term_schema).parse(JSON.parse(narrow_parameter));
|
||||||
return data;
|
|
||||||
}
|
|
||||||
|
|
||||||
const parsed_narrow_data = z.array(narrow_term_schema).parse(JSON.parse(data.narrow));
|
|
||||||
|
|
||||||
const narrow_terms: {
|
const narrow_terms: {
|
||||||
operator: string;
|
operator: string;
|
||||||
@@ -291,8 +275,7 @@ function handle_operators_supporting_id_based_api(data: {
|
|||||||
narrow_terms.push(narrow_term);
|
narrow_terms.push(narrow_term);
|
||||||
}
|
}
|
||||||
|
|
||||||
data.narrow = JSON.stringify(narrow_terms);
|
return JSON.stringify(narrow_terms);
|
||||||
return data;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function load_messages(opts: MessageFetchOptions, attempt = 1): void {
|
export function load_messages(opts: MessageFetchOptions, attempt = 1): void {
|
||||||
@@ -303,7 +286,7 @@ export function load_messages(opts: MessageFetchOptions, attempt = 1): void {
|
|||||||
// the nearest integer before sending a request to the server.
|
// the nearest integer before sending a request to the server.
|
||||||
opts.anchor = opts.anchor.toFixed(0);
|
opts.anchor = opts.anchor.toFixed(0);
|
||||||
}
|
}
|
||||||
let data: {
|
const data: {
|
||||||
anchor: number | string;
|
anchor: number | string;
|
||||||
num_before: number;
|
num_before: number;
|
||||||
num_after: number;
|
num_after: number;
|
||||||
@@ -327,9 +310,10 @@ export function load_messages(opts: MessageFetchOptions, attempt = 1): void {
|
|||||||
// But support for the all_messages_data sharing of data with
|
// But support for the all_messages_data sharing of data with
|
||||||
// the combined feed view and the (hacky) page_params.narrow feature
|
// the combined feed view and the (hacky) page_params.narrow feature
|
||||||
// requires a somewhat ugly bundle of conditionals.
|
// requires a somewhat ugly bundle of conditionals.
|
||||||
|
let narrow_data_string = "";
|
||||||
if (msg_list_data.filter.is_in_home()) {
|
if (msg_list_data.filter.is_in_home()) {
|
||||||
if (page_params.narrow_stream !== undefined) {
|
if (page_params.narrow_stream !== undefined) {
|
||||||
data.narrow = JSON.stringify(page_params.narrow);
|
narrow_data_string = JSON.stringify(page_params.narrow);
|
||||||
}
|
}
|
||||||
// Otherwise, we don't pass narrow for the combined feed view; this is
|
// Otherwise, we don't pass narrow for the combined feed view; this is
|
||||||
// required to display messages if their muted status changes without a new
|
// required to display messages if their muted status changes without a new
|
||||||
@@ -360,8 +344,11 @@ export function load_messages(opts: MessageFetchOptions, attempt = 1): void {
|
|||||||
server_terms.push({...term});
|
server_terms.push({...term});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
narrow_data_string = JSON.stringify(server_terms);
|
||||||
|
}
|
||||||
|
|
||||||
data.narrow = JSON.stringify(server_terms);
|
if (narrow_data_string !== "") {
|
||||||
|
data.narrow = handle_operators_supporting_id_based_api(narrow_data_string);
|
||||||
}
|
}
|
||||||
|
|
||||||
let update_loading_indicator =
|
let update_loading_indicator =
|
||||||
@@ -380,8 +367,6 @@ export function load_messages(opts: MessageFetchOptions, attempt = 1): void {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
data = handle_operators_supporting_id_based_api(data);
|
|
||||||
|
|
||||||
if (page_params.is_spectator) {
|
if (page_params.is_spectator) {
|
||||||
// This is a bit of a hack; ideally we'd unify this logic in
|
// This is a bit of a hack; ideally we'd unify this logic in
|
||||||
// some way with the above logic, and not need to do JSON
|
// some way with the above logic, and not need to do JSON
|
||||||
|
|||||||
Reference in New Issue
Block a user