Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
63 changes: 63 additions & 0 deletions sdk/react-native/additional-message-filtering.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -863,6 +863,69 @@ let GUID: string = "GUID",

</Tabs>

## 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.

<Tabs>
<Tab title="User">
```javascript
let UID = "UID";
let limit = 30;
let messagesRequest = new CometChat.MessagesRequestBuilder()
.setUID(UID)
.setLimit(limit)
.hideQuotedMessages(true)
.build();
```

</Tab>

<Tab title="Group">
```javascript
let GUID = "GUID";
let limit = 30;
let messagesRequest = new CometChat.MessagesRequestBuilder()
.setGUID(GUID)
.setLimit(limit)
.hideQuotedMessages(true)
.build();
```

</Tab>

<Tab title="TypeScript (User)">
```typescript
let UID: string = "UID",
limit: number = 30,
messagesRequest: CometChat.MessagesRequest =
new CometChat.MessagesRequestBuilder()
.setUID(UID)
.setLimit(limit)
.hideQuotedMessages(true)
.build();
```

</Tab>

<Tab title="TypeScript (Group)">
```typescript
let GUID: string = "GUID",
limit: number = 30,
messagesRequest: CometChat.MessagesRequest =
new CometChat.MessagesRequestBuilder()
.setGUID(GUID)
.setLimit(limit)
.hideQuotedMessages(true)
.build();
```

</Tab>

</Tabs>

## Messages by tags

*In other words, how do I fetch messages by tags*
Expand Down
103 changes: 103 additions & 0 deletions sdk/react-native/flag-message.mdx
Original file line number Diff line number Diff line change
@@ -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.

<Tabs>
<Tab title="Flag Message">
```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);
}
);
```
</Tab>

<Tab title="TypeScript">
```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);
}
);
```
</Tab>
</Tabs>

### 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.

<Tabs>
<Tab title="Get Flag Reasons">
```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);
}
);
```
</Tab>

<Tab title="TypeScript">
```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);
}
);
```
</Tab>
</Tabs>
Loading