StreamMessageListView(
messageBuilder: (context, details, messages, defaultMessage) {
return defaultMessage.copyWith(
showFlagButton: false,
showEditMessage: false,
showCopyMessage: true,
showDeleteMessage: details.isMyMessage,
showReplyMessage: false,
showThreadReplyMessage: false,
showMarkUnreadMessage: false,
);
},
)
Message Actions
Customizing Message Actions
Introduction
Message actions pop up in message overlay, when you long-press a message.
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
mark unread
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.
Mark unread message is only available on messages sent by other users and only when read events are enabled for the channel. Additionally, it’s not possible to mark messages inside threads as unread.
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
.
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.
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
},
),
],
);
},
)