Files
stream-chat-flutter/docusaurus/docs/Flutter/02-customization/01-custom-widgets/03-customize_message_actions.mdx
T
2023-10-11 15:05:12 +03:00

82 lines
1.8 KiB
Plaintext

---
id: customize_message_actions
title: Message Actions
---
Customizing Message Actions
### Introduction
Message actions pop up in message overlay, when you long-press a message.
![](../../assets/message_actions.jpg)
We have provided granular control over these actions.
By default we render the following message actions:
* edit message
* delete message
* reply
* thread reply
* copy message
* flag message
* pin message
:::note
Edit and delete message are only available on messages sent by the user.
Additionally, pinning a message requires you to add the roles which are allowed to pin messages.
:::
### Partially remove some message actions
For example, if you only want to keep "copy message" and "delete message":
here is how to do it using the `messageBuilder` with our `StreamMessageWidget`.
```dart
StreamMessageListView(
messageBuilder: (context, details, messages, defaultMessage) {
return defaultMessage.copyWith(
showFlagButton: false,
showEditMessage: false,
showCopyMessage: true,
showDeleteMessage: details.isMyMessage,
showReplyMessage: false,
showThreadReplyMessage: false,
);
},
)
```
### Add a new custom message action
The SDK also allows you to add new actions into the dialog.
For example, let's suppose you want to introduce a new message action - "Demo Action":
We use the `customActions` parameter of the `StreamMessageWidget` to add extra actions.
```dart
StreamMessageListView(
messageBuilder: (context, details, messages, defaultMessage) {
return defaultMessage.copyWith(
customActions: [
StreamMessageAction(
leading: const Icon(Icons.add),
title: const Text('Demo Action'),
onTap: (message) {
/// Complete action here
},
),
],
);
},
)
```