This is documentation for Stream Chat Flutter SDK v3, which is nolonger actively maintained. For up-to-date documentation, see the latest version (v8).

Customize 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

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

MessageListView(
  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 MessageWidget to add extra actions.

MessageListView(
  messageBuilder: (context, details, messages, defaultMessage) {
    return defaultMessage.copyWith(
      customActions: [
        MessageAction(
          leading: Icon(Icons.add),
          title: Text('Demo Action'),
          onTap: (message) {
            /// Complete action here
          },
        ),
      ],
    );
  },
)
© Getstream.io, Inc. All Rights Reserved.