diff --git a/web/src/message_edit.ts b/web/src/message_edit.ts index 5f2637755a..5e4b77e304 100644 --- a/web/src/message_edit.ts +++ b/web/src/message_edit.ts @@ -102,6 +102,10 @@ export function is_topic_editable(message: Message, edit_limit_seconds_buffer = return false; } + if (message.type === "stream" && stream_data.is_stream_archived(message.stream_id)) { + return false; + } + if (!settings_data.user_can_move_messages_to_another_topic()) { return false; } @@ -206,6 +210,10 @@ export function is_message_sent_by_my_bot(message: Message): boolean { } export function get_deletability(message: Message): boolean { + if (message.type === "stream" && stream_data.is_stream_archived(message.stream_id)) { + return false; + } + if (settings_data.user_can_delete_any_message()) { return true; } @@ -243,6 +251,10 @@ export function is_stream_editable(message: Message, edit_limit_seconds_buffer = return false; } + if (message.type === "stream" && stream_data.is_stream_archived(message.stream_id)) { + return false; + } + if (!settings_data.user_can_move_messages_between_streams()) { return false; } diff --git a/web/src/popover_menus_data.ts b/web/src/popover_menus_data.ts index d33e22737a..5774796cab 100644 --- a/web/src/popover_menus_data.ts +++ b/web/src/popover_menus_data.ts @@ -206,7 +206,10 @@ export function get_actions_popover_content_context(message_id: number): ActionP // `media_breakpoints.sm_min`, we need to include the reaction button in the // popover if it is not displayed. const should_display_add_reaction_option = - !message.is_me_message && !is_add_reaction_icon_visible() && not_spectator; + !message.is_me_message && + !is_add_reaction_icon_visible() && + not_spectator && + !(stream_id && stream_data.is_stream_archived(stream_id)); return { message_id: message.id, diff --git a/web/styles/reactions.css b/web/styles/reactions.css index 9cdf169cf3..c0cc0a834d 100644 --- a/web/styles/reactions.css +++ b/web/styles/reactions.css @@ -6,6 +6,12 @@ margin-bottom: var(--message-box-markdown-aligned-vertical-space); } + .message_reaction_container { + &.disabled { + cursor: not-allowed; + } + } + .message_reaction { display: flex; /* Set a pixel and half padding to maintain @@ -39,6 +45,10 @@ box-shadow: none; } + &.disabled { + pointer-events: none; + } + &:hover { background-color: var(--color-message-reaction-background-hover); } diff --git a/web/templates/message_controls.hbs b/web/templates/message_controls.hbs index 1efbfbaf38..02ac760a68 100644 --- a/web/templates/message_controls.hbs +++ b/web/templates/message_controls.hbs @@ -1,13 +1,15 @@ -{{#if msg/sent_by_me}} -
-{{/if}} +{{#unless is_archived}} + {{#if msg/sent_by_me}} +
+ {{/if}} -{{#unless msg/sent_by_me}} -
-
- + {{#unless msg/sent_by_me}} +
+
+ +
-
+ {{/unless}} {{/unless}}
diff --git a/web/templates/message_group.hbs b/web/templates/message_group.hbs index 99cc243af2..a29fd19ee8 100644 --- a/web/templates/message_group.hbs +++ b/web/templates/message_group.hbs @@ -10,7 +10,7 @@ {{> recipient_row use_match_properties=../use_match_properties}} {{#each message_containers}} {{#with this}} - {{> single_message use_match_properties=../../use_match_properties message_list_id=../../message_list_id}} + {{> single_message use_match_properties=../../use_match_properties message_list_id=../../message_list_id is_archived=../is_archived}} {{/with}} {{/each}}
diff --git a/web/templates/message_reaction.hbs b/web/templates/message_reaction.hbs index 91e9b20878..6df258a093 100644 --- a/web/templates/message_reaction.hbs +++ b/web/templates/message_reaction.hbs @@ -1,10 +1,12 @@ -
- {{#if this.emoji_alt_code}} -
 :{{this.emoji_name}}:
- {{else if this.is_realm_emoji}} - - {{else}} -
- {{/if}} -
{{this.vote_text}}
+
+
+ {{#if this.emoji_alt_code}} +
 :{{this.emoji_name}}:
+ {{else if this.is_realm_emoji}} + + {{else}} +
+ {{/if}} +
{{this.vote_text}}
+
diff --git a/web/templates/message_reactions.hbs b/web/templates/message_reactions.hbs index 7828520d98..c1ab44c917 100644 --- a/web/templates/message_reactions.hbs +++ b/web/templates/message_reactions.hbs @@ -1,11 +1,13 @@
{{#each this/msg/message_reactions}} - {{> message_reaction}} + {{> message_reaction is_archived=../is_archived}} {{/each}} -
-
- -
+
+ {{#unless is_archived}} +
+
+ +
+
+
-
+ {{/unless}}
diff --git a/web/tests/popover_menus_data.test.js b/web/tests/popover_menus_data.test.js index 346c3b61c7..61e25a3514 100644 --- a/web/tests/popover_menus_data.test.js +++ b/web/tests/popover_menus_data.test.js @@ -46,6 +46,7 @@ mock_esm("../src/hash_util", { }); mock_esm("../src/stream_data", { is_subscribed: () => true, + is_stream_archived: () => false, }); mock_esm("../src/group_permission_settings", { get_group_permission_setting_config() {