---
title: "SnackbarHostState"
description: "State of the [SnackbarHost], controls the queue and the current [Snackbar] being shown inside the
[SnackbarHost].

This state usually lives as a part of a [ScaffoldState] and provided to the [SnackbarHost]
automatically, but can be decoupled from it and live separately when desired."
type: "class"
---

<div class='type'>Class</div>


<a id='references'></a>

<div class='sourceset sourceset-common'>Common</div>


```kotlin
class SnackbarHostState
```


State of the `SnackbarHost`, controls the queue and the current `Snackbar` being shown inside the
`SnackbarHost`.

This state usually lives as a part of a `ScaffoldState` and provided to the `SnackbarHost`
automatically, but can be decoupled from it and live separately when desired.


## Properties

<div class='sourceset sourceset-common'>Common</div>


```kotlin
var currentSnackbarData
```


The current `SnackbarData` being shown by the `SnackbarHost`, of `null` if none.



## Functions

```kotlin
suspend fun showSnackbar(
        message: String,
        actionLabel: String? = null,
        duration: SnackbarDuration = SnackbarDuration.Short,
    ): SnackbarResult
```


Shows or queues to be shown a `Snackbar` at the bottom of the `Scaffold` at which this state
is attached and suspends until snackbar is disappeared.

`SnackbarHostState` guarantees to show at most one snackbar at a time. If this function is
called while another snackbar is already visible, it will be suspended until this snack bar
is shown and subsequently addressed. If the caller is cancelled, the snackbar will be removed
from display and/or the queue to be displayed.

All of this allows for granular control over the snackbar queue from within:


To change the Snackbar appearance, change it in 'snackbarHost' on the `Scaffold`.

#### Parameters

| | |
| --- | --- |
| message | text to be shown in the Snackbar |
| actionLabel | optional action label to show as button in the Snackbar |
| duration | duration to control how long snackbar will be shown in `SnackbarHost`, either `SnackbarDuration.Short`, `SnackbarDuration.Long` or `SnackbarDuration.Indefinite` |


#### Returns

| | |
| --- | --- |
|  | `SnackbarResult.ActionPerformed` if option action has been clicked or `SnackbarResult.Dismissed` if snackbar has been dismissed via timeout or by the user |




