# Reactions

Reactions in video calling let participants express emotions and non‑verbal cues without interrupting the conversation. They also make meetings feel more interactive and responsive.

### Send a reaction

```dart
await call.sendReaction(reactionType: 'fireworks');
```

### Send a reaction with custom data

You can attach custom data and optionally override the emoji used for the reaction:

```dart
await call.sendReaction(
        reactionType: 'raise-hand',
        emojiCode: ':smile:',
        custom: {'mycustomfield': 'mycustomvalue'},
    );
```

### Default behavior

When a reaction event is received, the SDK updates the `CallParticipantState`. The default UI components render the reaction as an overlay on the participant’s video. After a configurable duration, the reaction is reset and disappears from the UI.

You can configure the auto‑dismiss timeout via `reactionAutoDismissTime` in `CallPreferences`:

```dart
final preferences = DefaultCallPreferences(
  reactionAutoDismissTime: const Duration(seconds: 30),
);

final streamVideo = StreamVideo(
  'api_key',
  user: user,
  userToken: token,
  options: StreamVideoOptions(
    defaultCallPreferences: preferences,
  ),
);
```

See more about Call preferences [here](/video/docs/flutter/advanced/call-preferences/).
Refer to the [cookbook](/video/docs/flutter/ui-cookbook/reactions/) for information on built-in reaction components and customization.

### Listen for reaction events

If you want to handle reactions yourself, listen for the event and apply custom logic:

```dart
call.callEvents.on<StreamCallReactionEvent>((event) {
    debugPrint(
    'Reaction received: ${event.emojiCode} from ${event.user.id}',
    );
});
```


---

This page was last updated at 2026-07-16T15:13:36.159Z.

For the most recent version of this documentation, visit [https://getstream.io/video/docs/flutter/guides/reactions/](https://getstream.io/video/docs/flutter/guides/reactions/).