Delete a message
Delete a sent message so it is removed from all users' message history. Once deleted, the original message content is replaced with a notification for all participants.
Delete a message
First retrieve the message object, then call deleteMessageForAll:
TypeScript
import { DirectChannel, BaseChannel, Message } from '@nexconn/chat';
const channel = new DirectChannel('<target-user-id>');
// Retrieve the message object you want to recall
const query = BaseChannel.createMessagesQuery({
channelIdentifier: channel.identifier,
startTime: Date.now(),
pageSize: 20,
isAscending: false,
});
const { code, data: page } = await query.loadNextPage();
if (code === 0 && page.data.length > 0) {
const { code: deleteCode } = await channel.deleteMessageForAll(page.data[0]);
if (deleteCode === 0) {
console.log('Message deleteed for all participants');
} else {
console.log('Delete failed. Code:', recallCode);
}
}
Handle deletion notifications
When a message is deleted, all connected users receive a notification through the message listener. Update your UI to reflect the change:
TypeScript
import { NCEngine, MessageHandler } from '@nexconn/chat';
NCEngine.addMessageHandler('recall-handler', new MessageHandler({
onMessageDeleted({ messages }): void {
messages.forEach((msg) => {
console.log('Message recalled:', msg.messageId);
});
},
}));
info
- By default, only the message sender can delete their own messages.
- Admins can be granted deletion permissions through server-side configuration.
- There may be a time limit for deleting messages (configured on the server).