> ## Documentation Index
> Fetch the complete documentation index at: https://docs.encorekit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# EncoreDismissReason

> How a presented offer sheet went away

The `dismissal` on a presented [`EncorePresentationResult`](./presentation-result). Its wire values are shared by every Encore SDK.

## Definition

```dart theme={null}
enum EncoreDismissReason {
  userTappedClose('close_button'),
  userSwipedDown('swipe_dismiss'),
  userCancelled('user_cancelled'),
  lastOfferDeclined('last_offer_declined'),
  dismissed('dismissed'),
  cooldown('provisional_cooldown'),
  flowCompleted('flow_completed'),
  interrupted('interrupted'),
  unknown('unknown');

  final String nativeValue;
}
```

## Values

| Value               | Wire value             | Meaning                                                                | Platform |
| ------------------- | ---------------------- | ---------------------------------------------------------------------- | -------- |
| `userTappedClose`   | `close_button`         | The user tapped the close control                                      | Both     |
| `userSwipedDown`    | `swipe_dismiss`        | The user swiped the sheet away                                         | Both     |
| `userCancelled`     | `user_cancelled`       | The user cancelled out of the flow                                     | iOS      |
| `lastOfferDeclined` | `last_offer_declined`  | The user declined the final offer in the flow                          | iOS      |
| `dismissed`         | `dismissed`            | Generic dismissal                                                      | iOS      |
| `cooldown`          | `provisional_cooldown` | The claim was rejected server-side by the cross-offer cooldown         | Both     |
| `flowCompleted`     | `flow_completed`       | The flow finished on its own and the SDK closed the sheet              | Both     |
| `interrupted`       | `interrupted`          | The SDK force-ended a dead flow, not the user                          | Both     |
| `unknown`           | `unknown`              | A value this plugin version doesn't recognize, from a newer native SDK | Both     |

## Usage

```dart theme={null}
final result = await Encore.placement('cancel_flow').show();

if (result.dismissal == EncoreDismissReason.userTappedClose) {
  analytics.log('encore_closed_without_claim');
}
```

`result.dismissal` is `null` when nothing was presented.

## Related

* [EncorePresentationResult](./presentation-result): the record this value is part of
* [placement()](./placement): the call that produces the record
