mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 14:03:30 +00:00 
			
		
		
		
	message_store: Edit message content in a helper function.
In a future commit, this will be where we ensure the saved topic links are up to date.
This commit is contained in:
		@@ -1,6 +1,7 @@
 | 
			
		||||
import _ from "lodash";
 | 
			
		||||
 | 
			
		||||
import type {Message} from "./message_store.ts";
 | 
			
		||||
import * as message_store from "./message_store.ts";
 | 
			
		||||
import * as people from "./people.ts";
 | 
			
		||||
import type {StateData} from "./state_data.ts";
 | 
			
		||||
 | 
			
		||||
@@ -56,7 +57,7 @@ export function process_message(message: Message): void {
 | 
			
		||||
        const after_punctuation = "(?=\\s)|$|<|[\\)\\\"\\?!:.,';\\]!]";
 | 
			
		||||
 | 
			
		||||
        const regex = new RegExp(`(${before_punctuation})(${clean})(${after_punctuation})`, "ig");
 | 
			
		||||
        message.content = message.content.replace(
 | 
			
		||||
        const updated_content = message.content.replace(
 | 
			
		||||
            regex,
 | 
			
		||||
            (
 | 
			
		||||
                match: string,
 | 
			
		||||
@@ -81,6 +82,7 @@ export function process_message(message: Message): void {
 | 
			
		||||
                return before + "<span class='alert-word'>" + word + "</span>" + after;
 | 
			
		||||
            },
 | 
			
		||||
        );
 | 
			
		||||
        message_store.update_message_content(message, updated_content);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -162,7 +162,7 @@ function resend_message(
 | 
			
		||||
        send_message: typeof transmit.send_message;
 | 
			
		||||
    },
 | 
			
		||||
): void {
 | 
			
		||||
    message.content = message.raw_content!;
 | 
			
		||||
    message_store.update_message_content(message, message.raw_content!);
 | 
			
		||||
    if (show_retry_spinner($row)) {
 | 
			
		||||
        // retry already in in progress
 | 
			
		||||
        return;
 | 
			
		||||
@@ -401,7 +401,7 @@ export function edit_locally(message: Message, request: LocalEditRequest): Messa
 | 
			
		||||
            // the saved content and flags rather than rendering; this
 | 
			
		||||
            // is important in case
 | 
			
		||||
            // markdown.contains_backend_only_syntax(message) is true.
 | 
			
		||||
            message.content = request.content;
 | 
			
		||||
            message_store.update_message_content(message, request.content);
 | 
			
		||||
            message.mentioned = request.mentioned ?? false;
 | 
			
		||||
            message.mentioned_me_directly = request.mentioned_me_directly ?? false;
 | 
			
		||||
            message.alerted = request.alerted ?? false;
 | 
			
		||||
@@ -411,7 +411,7 @@ export function edit_locally(message: Message, request: LocalEditRequest): Messa
 | 
			
		||||
            // properties of how the user has interacted with the
 | 
			
		||||
            // message, and not its rendering.
 | 
			
		||||
            const {content, flags, is_me_message} = markdown.render(message.raw_content);
 | 
			
		||||
            message.content = content;
 | 
			
		||||
            message_store.update_message_content(message, content);
 | 
			
		||||
            message.flags = flags;
 | 
			
		||||
            message.is_me_message = is_me_message;
 | 
			
		||||
            if (request.starred !== undefined) {
 | 
			
		||||
@@ -548,7 +548,7 @@ export function process_from_server(messages: ServerMessage[]): ServerMessage[]
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (client_message.content !== message.content) {
 | 
			
		||||
            client_message.content = message.content;
 | 
			
		||||
            message_store.update_message_content(client_message, message.content);
 | 
			
		||||
            sent_messages.mark_disparity(local_id);
 | 
			
		||||
        }
 | 
			
		||||
        sent_messages.report_event_received(local_id);
 | 
			
		||||
 
 | 
			
		||||
@@ -447,7 +447,7 @@ export function update_messages(events: UpdateMessageEvent[]): void {
 | 
			
		||||
            message_store.update_booleans(anchor_message, event.flags);
 | 
			
		||||
 | 
			
		||||
            if (event.rendered_content !== undefined) {
 | 
			
		||||
                anchor_message.content = event.rendered_content;
 | 
			
		||||
                message_store.update_message_content(anchor_message, event.rendered_content);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (event.is_me_message !== undefined) {
 | 
			
		||||
 
 | 
			
		||||
@@ -396,6 +396,10 @@ export function reify_message_id({old_id, new_id}: {old_id: number; new_id: numb
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function update_message_content(message: Message, new_content: string): void {
 | 
			
		||||
    message.content = new_content;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function remove(message_ids: number[]): void {
 | 
			
		||||
    for (const message_id of message_ids) {
 | 
			
		||||
        stored_messages.delete(message_id);
 | 
			
		||||
 
 | 
			
		||||
@@ -34,6 +34,10 @@ const message_store = mock_esm("../src/message_store", {
 | 
			
		||||
 | 
			
		||||
    update_booleans() {},
 | 
			
		||||
 | 
			
		||||
    update_message_content(message, new_content) {
 | 
			
		||||
        message.content = new_content;
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    convert_raw_message_to_message_with_booleans() {},
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user