From d82083ca2401954e45e9619353c2466877895836 Mon Sep 17 00:00:00 2001 From: Lauryn Menard Date: Tue, 9 Sep 2025 15:32:42 +0200 Subject: [PATCH] filter: Add title for an unknown user for the "sender" narrow case. Previously, the message header for the "Messages sent by" view for an invalid or unknown user was the value of the "sender" operand, which was not a valid/known user email. Now we show a standard title in the message header for this case: "Messages sent by unknown user". --- web/src/filter.ts | 23 +++++++++++------------ web/tests/filter.test.cjs | 8 ++++++++ 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/web/src/filter.ts b/web/src/filter.ts index 77fbf9308f..3c7d62746d 100644 --- a/web/src/filter.ts +++ b/web/src/filter.ts @@ -1433,19 +1433,18 @@ export class Filter { if (term_types.length === 1 && _.isEqual(term_types, ["sender"])) { const email = this.operands("sender")[0]!; const user = people.get_by_email(email); - let sender = email; - if (user) { - if (people.is_my_user_id(user.user_id)) { - return $t({defaultMessage: "Messages sent by you"}); - } - - if (people.should_add_guest_user_indicator(user.user_id)) { - sender = $t({defaultMessage: "{name} (guest)"}, {name: user.full_name}); - } else { - sender = user.full_name; - } + if (user === undefined) { + return $t({defaultMessage: "Messages sent by unknown user"}); + } + if (people.is_my_user_id(user.user_id)) { + return $t({defaultMessage: "Messages sent by you"}); + } + let sender: string; + if (people.should_add_guest_user_indicator(user.user_id)) { + sender = $t({defaultMessage: "{name} (guest)"}, {name: user.full_name}); + } else { + sender = user.full_name; } - return $t( {defaultMessage: "Messages sent by {sender}"}, { diff --git a/web/tests/filter.test.cjs b/web/tests/filter.test.cjs index 3d435075da..c9745e95a0 100644 --- a/web/tests/filter.test.cjs +++ b/web/tests/filter.test.cjs @@ -2337,6 +2337,7 @@ test("navbar_helpers", ({override}) => { const sender = [{operator: "sender", operand: joe.email}]; const guest_sender = [{operator: "sender", operand: alice.email}]; + const invalid_sender = [{operator: "sender", operand: "sally@doesnotexist.co"}]; const in_home = [{operator: "in", operand: "home"}]; const in_all = [{operator: "in", operand: "all"}]; const is_starred = [{operator: "is", operand: "starred"}]; @@ -2434,6 +2435,13 @@ test("navbar_helpers", ({override}) => { title: "translated: Messages sent by translated: alice (guest)", redirect_url_with_search: "/#narrow/sender/" + alice.user_id + "-alice", }, + { + terms: invalid_sender, + is_common_narrow: true, + icon: undefined, + title: "translated: Messages sent by unknown user", + redirect_url_with_search: "/#narrow/sender/undefined", + }, { terms: is_starred, is_common_narrow: true,