diff --git a/docs.json b/docs.json
index 495399d6..04693057 100644
--- a/docs.json
+++ b/docs.json
@@ -2826,6 +2826,7 @@
"sdk/react-native/threaded-messages",
"sdk/react-native/edit-message",
"sdk/react-native/delete-message",
+ "sdk/react-native/flag-message",
"sdk/react-native/delete-conversation",
"sdk/react-native/typing-indicators",
"sdk/react-native/interactive-messages",
diff --git a/sdk/react-native/additional-message-filtering.mdx b/sdk/react-native/additional-message-filtering.mdx
index 92416031..2a3e529d 100644
--- a/sdk/react-native/additional-message-filtering.mdx
+++ b/sdk/react-native/additional-message-filtering.mdx
@@ -863,6 +863,69 @@ let GUID: string = "GUID",
+## Hide quoted messages in user/group conversations
+
+*In other words, how do I exclude quoted messages in a user/group conversations*
+
+In order to do this, you can use the `hideQuotedMessages()` method. This method takes boolean as input. This boolean when set to true will make sure that the quoted messages are not fetched. If set to false, which is also the default value, the quoted messages will also be fetched along with other messages.
+
+
+
+```javascript
+let UID = "UID";
+let limit = 30;
+let messagesRequest = new CometChat.MessagesRequestBuilder()
+ .setUID(UID)
+ .setLimit(limit)
+ .hideQuotedMessages(true)
+ .build();
+```
+
+
+
+
+```javascript
+let GUID = "GUID";
+let limit = 30;
+let messagesRequest = new CometChat.MessagesRequestBuilder()
+ .setGUID(GUID)
+ .setLimit(limit)
+ .hideQuotedMessages(true)
+ .build();
+```
+
+
+
+
+```typescript
+let UID: string = "UID",
+ limit: number = 30,
+ messagesRequest: CometChat.MessagesRequest =
+ new CometChat.MessagesRequestBuilder()
+ .setUID(UID)
+ .setLimit(limit)
+ .hideQuotedMessages(true)
+ .build();
+```
+
+
+
+
+```typescript
+let GUID: string = "GUID",
+ limit: number = 30,
+ messagesRequest: CometChat.MessagesRequest =
+ new CometChat.MessagesRequestBuilder()
+ .setGUID(GUID)
+ .setLimit(limit)
+ .hideQuotedMessages(true)
+ .build();
+```
+
+
+
+
+
## Messages by tags
*In other words, how do I fetch messages by tags*
diff --git a/sdk/react-native/flag-message.mdx b/sdk/react-native/flag-message.mdx
new file mode 100644
index 00000000..a411e1fd
--- /dev/null
+++ b/sdk/react-native/flag-message.mdx
@@ -0,0 +1,103 @@
+---
+title: "Flag A Message"
+---
+
+Flagging messages allows users to report inappropriate content to moderators or administrators. CometChat provides methods to flag messages with specific reasons and retrieve available flag reasons configured in your dashboard.
+
+## Flag a Message
+
+*In other words, as a user, how do I report a message?*
+
+To flag a message, you can use the `flagMessage()` method. This method takes the message ID and a payload containing an optional reason ID and remark.
+
+
+
+```javascript
+let messageId = "ID_OF_THE_MESSAGE_YOU_WANT_TO_FLAG";
+let payload = {
+ reasonId: "spam", // Required: ID of the flag reason
+ remark: "This message contains promotional content" // Optional: Additional context
+};
+
+CometChat.flagMessage(messageId, payload).then(
+ response => {
+ console.log("Message flagged successfully", response);
+ }, error => {
+ console.log("Message flagging failed with error:", error);
+ }
+);
+```
+
+
+
+```typescript
+let messageId: string = "ID_OF_THE_MESSAGE_YOU_WANT_TO_FLAG";
+let payload: { reasonId: string; remark?: string } = {
+ reasonId: "spam",
+ remark: "This message contains promotional content"
+};
+
+CometChat.flagMessage(messageId, payload).then(
+ (response: CometChat.FlagMessageResponse) => {
+ console.log("Message flagged successfully", response);
+ }, (error: CometChat.CometChatException) => {
+ console.log("Message flagging failed with error:", error);
+ }
+);
+```
+
+
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+|-----------|------|----------|-------------|
+| messageId | string | Yes | The ID of the message to be flagged |
+| payload | object | Yes | Contains flagging details |
+| payload.reasonId | string | Yes | ID of the flag reason (from getFlagReasons) |
+| payload.remark | string | No | Additional context or explanation |
+
+### Response
+
+On successful flagging, you'll receive a response object:
+
+```javascript
+{
+ "success": true,
+ "message": "Message with id {{messageId}} has been flagged successfully"
+}
+```
+
+## Get Flag Reasons
+
+*In other words, what are the available reasons for flagging a message?*
+
+Before flagging a message, you can retrieve the list of available flag reasons using the `getFlagReasons()` method. These reasons are configured in the CometChat Dashboard.
+
+
+
+```javascript
+CometChat.getFlagReasons().then(
+ reasons => {
+ console.log("Flag reasons retrieved", reasons);
+ // Use reasons to populate your UI
+ }, error => {
+ console.log("Failed to get flag reasons:", error);
+ }
+);
+```
+
+
+
+```typescript
+CometChat.getFlagReasons().then(
+ (reasons: CometChat.FlagReason[]) => {
+ console.log("Flag reasons retrieved", reasons);
+ // Use reasons to populate your UI
+ }, (error: CometChat.CometChatException) => {
+ console.log("Failed to get flag reasons:", error);
+ }
+);
+```
+
+
diff --git a/sdk/react-native/send-message.mdx b/sdk/react-native/send-message.mdx
index 1df9c7ce..411c20dc 100644
--- a/sdk/react-native/send-message.mdx
+++ b/sdk/react-native/send-message.mdx
@@ -170,6 +170,125 @@ CometChat.sendMessage(textMessage).then(
+### Set Quoted Message Id
+
+To set a quoted message ID for a message, use the `setQuotedMessageId()` method of the TextMessage class. This method accepts the ID of the message to be quoted.
+
+
+
+```javascript
+textMessage.setQuotedMessageId(10);
+```
+
+
+
+
+```typescript
+textMessage.setQuotedMessageId(10);
+```
+
+
+
+
+
+Once the text message object is ready, you need to use the `sendMessage()` method to send the text message to the recipient.
+
+
+
+```javascript
+let receiverID = "UID";
+let messageText = "Hello world!";
+let receiverType = CometChat.RECEIVER_TYPE.USER;
+let textMessage = new CometChat.TextMessage(
+ receiverID,
+ messageText,
+ receiverType
+);
+
+CometChat.sendMessage(textMessage).then(
+ (message) => {
+ console.log("Message sent successfully:", message);
+ },
+ (error) => {
+ console.log("Message sending failed with error:", error);
+ }
+);
+```
+
+
+
+
+```javascript
+let receiverID = "GUID";
+let messageText = "Hello world!";
+let receiverType = CometChat.RECEIVER_TYPE.GROUP;
+let textMessage = new CometChat.TextMessage(
+ receiverID,
+ messageText,
+ receiverType
+);
+
+CometChat.sendMessage(textMessage).then(
+ (message) => {
+ console.log("Message sent successfully:", message);
+ },
+ (error) => {
+ console.log("Message sending failed with error:", error);
+ }
+);
+```
+
+
+
+
+```typescript
+let receiverID: string = "UID",
+ messageText: string = "Hello world!",
+ receiverType: string = CometChat.RECEIVER_TYPE.USER,
+ textMessage: CometChat.TextMessage = new CometChat.TextMessage(
+ receiverID,
+ messageText,
+ receiverType
+ );
+
+CometChat.sendMessage(textMessage).then(
+ (message: CometChat.TextMessage) => {
+ console.log("Message sent successfully:", message);
+ },
+ (error: CometChat.CometChatException) => {
+ console.log("Message sending failed with error:", error);
+ }
+);
+```
+
+
+
+
+```typescript
+let receiverID: string = "GUID",
+ messageText: string = "Hello world!",
+ receiverType: string = CometChat.RECEIVER_TYPE.GROUP,
+ textMessage: CometChat.TextMessage = new CometChat.TextMessage(
+ receiverID,
+ messageText,
+ receiverType
+ );
+
+CometChat.sendMessage(textMessage).then(
+ (message: CometChat.TextMessage) => {
+ console.log("Message sent successfully:", message);
+ },
+ (error: CometChat.CometChatException) => {
+ console.log("Message sending failed with error:", error);
+ }
+);
+```
+
+
+
+
+
+
The `TextMessage` class constructor takes the following parameters:
| Parameter | Description | Required |
@@ -408,6 +527,154 @@ CometChat.sendMediaMessage(mediaMessage).then(
+### Set Quoted Message Id
+
+To set a quoted message ID for a message, use the `setQuotedMessageId()` method of the MediaMessage class. This method accepts the ID of the message to be quoted.
+
+
+
+```javascript
+mediaMessage.setQuotedMessageId(10);
+```
+
+
+
+
+```typescript
+mediaMessage.setQuotedMessageId(10);
+```
+
+
+
+
+
+There are 2 ways you can send Media Messages using the CometChat SDK:
+
+1. **By providing the File:** You can directly share the file object while creating an object of the MediaMessage class. When the media message is sent using the `sendMediaMessage()` method, this file is then uploaded to CometChat servers and the URL of the file is sent in the success response of the `sendMediaMessage()` function.
+
+Getting file Object:
+
+
+
+```html
+
+
+
+
+
+
+```
+
+
+
+
+
+
+
+```javascript
+let receiverID = "UID";
+let messageType = CometChat.MESSAGE_TYPE.FILE;
+let receiverType = CometChat.RECEIVER_TYPE.USER;
+let mediaMessage = new CometChat.MediaMessage(
+ receiverID,
+ "INPUT FILE OBJECT",
+ messageType,
+ receiverType
+);
+
+CometChat.sendMediaMessage(mediaMessage).then(
+ (message) => {
+ console.log("Media message sent successfully", message);
+ },
+ (error) => {
+ console.log("Media message sending failed with error", error);
+ }
+);
+```
+
+
+
+
+```javascript
+let receiverID = "GUID";
+let messageType = CometChat.MESSAGE_TYPE.FILE;
+let receiverType = CometChat.RECEIVER_TYPE.GROUP;
+let mediaMessage = new CometChat.MediaMessage(
+ receiverID,
+ `INPUT FILE OBJECT`,
+ messageType,
+ receiverType
+);
+
+CometChat.sendMediaMessage(mediaMessage).then(
+ (message) => {
+ console.log("Media message sent successfully", message);
+ },
+ (error) => {
+ console.log("Media message sending failed with error", error);
+ }
+);
+```
+
+
+
+
+```typescript
+let receiverID: string = "UID",
+ messageType: string = CometChat.MESSAGE_TYPE.FILE,
+ receiverType: string = CometChat.RECEIVER_TYPE.USER,
+ mediaMessage: CometChat.MediaMessage = new CometChat.MediaMessage(
+ receiverID,
+ "INPUT FILE OBJECT",
+ messageType,
+ receiverType
+ );
+
+CometChat.sendMediaMessage(mediaMessage).then(
+ (message: CometChat.MediaMessage) => {
+ console.log("Media message sent successfully", message);
+ },
+ (error: CometChat.CometChatException) => {
+ console.log("Media message sending failed with error", error);
+ }
+);
+```
+
+
+
+
+```typescript
+let receiverID: string = "GUID",
+ messageType: string = CometChat.MESSAGE_TYPE.FILE,
+ receiverType: string = CometChat.RECEIVER_TYPE.GROUP,
+ mediaMessage: CometChat.MediaMessage = new CometChat.MediaMessage(
+ receiverID,
+ "INPUT FILE OBJECT",
+ messageType,
+ receiverType
+ );
+
+CometChat.sendMediaMessage(mediaMessage).then(
+ (message: CometChat.MediaMessage) => {
+ console.log("Media message sent successfully", message);
+ },
+ (error: CometChat.CometChatException) => {
+ console.log("Media message sending failed with error", error);
+ }
+);
+```
+
+
+
+
+
+
The `MediaMessage` class constructor takes the following parameters:
| Parameter | Description | Required |
@@ -1116,6 +1383,145 @@ CometChat.sendCustomMessage(customMessage).then(
+### Set Quoted Message Id
+
+To set a quoted message ID for a message, use the `setQuotedMessageId()` method of the CustomMessage class. This method accepts the ID of the message to be quoted.
+
+
+
+```javascript
+customMessage.setQuotedMessageId(10);
+```
+
+
+
+
+```typescript
+customMessage.setQuotedMessageId(10);
+```
+
+
+
+
+
+Once the object of `CustomMessage` class is ready you can send the custom message using the `sendCustomMessage()` method.
+
+
+
+```javascript
+let receiverID = "UID";
+let customData = {
+ latitude: "50.6192171633316",
+ longitude: "-72.68182268750002",
+};
+let customType = "location";
+let receiverType = CometChat.RECEIVER_TYPE.USER;
+let customMessage = new CometChat.CustomMessage(
+ receiverID,
+ receiverType,
+ customType,
+ customData
+);
+
+CometChat.sendCustomMessage(customMessage).then(
+ (message) => {
+ console.log("custom message sent successfully", message);
+ },
+ (error) => {
+ console.log("custom message sending failed with error", error);
+ }
+);
+```
+
+
+
+
+```javascript
+let receiverID = "GUID";
+let customData = {
+ latitude: "50.6192171633316",
+ longitude: "-72.68182268750002",
+};
+let customType = "location";
+let receiverType = CometChat.RECEIVER_TYPE.GROUP;
+let customMessage = new CometChat.CustomMessage(
+ receiverID,
+ receiverType,
+ customType,
+ customData
+);
+
+CometChat.sendCustomMessage(customMessage).then(
+ (message) => {
+ console.log("custom message sent successfully", message);
+ },
+ (error) => {
+ console.log("custom message sending failed with error", error);
+ }
+);
+```
+
+
+
+
+```typescript
+let receiverID: string = "UID",
+ customData: Object = {
+ latitude: "50.6192171633316",
+ longitude: "-72.68182268750002",
+ },
+ customType: string = "location",
+ receiverType: string = CometChat.RECEIVER_TYPE.USER,
+ customMessage: CometChat.CustomMessage = new CometChat.CustomMessage(
+ receiverID,
+ receiverType,
+ customType,
+ customData
+ );
+
+CometChat.sendCustomMessage(customMessage).then(
+ (message: CometChat.CustomMessage) => {
+ console.log("custom message sent successfully", message);
+ },
+ (error: CometChat.CometChatException) => {
+ console.log("custom message sending failed with error", error);
+ }
+);
+```
+
+
+
+
+```typescript
+let receiverID: string = "GUID",
+ customData: Object = {
+ latitude: "50.6192171633316",
+ longitude: "-72.68182268750002",
+ },
+ customType: string = "location",
+ receiverType: string = CometChat.RECEIVER_TYPE.GROUP,
+ customMessage: CometChat.CustomMessage = new CometChat.CustomMessage(
+ receiverID,
+ receiverType,
+ customType,
+ customData
+ );
+
+CometChat.sendCustomMessage(customMessage).then(
+ (message: CometChat.CustomMessage) => {
+ console.log("custom message sent successfully", message);
+ },
+ (error: CometChat.CometChatException) => {
+ console.log("custom message sending failed with error", error);
+ }
+);
+```
+
+
+
+
+
+
The above sample explains how custom messages can be used to share the location with a user. The same can be achieved for groups.
On success, you will receive an object of the `CustomMessage` class.