<div class='type'>Composable Component</div>



`SwipeToReveal` Material composable. This adds the option to configure up to two additional
actions on a Composable: a mandatory `primaryAction` and an optional `secondaryAction`. These
actions are initially hidden (unless `RevealState` is created with an initial value other than
`RevealValue.Covered`) and revealed only when the `content` is swiped - the action buttons can
then be clicked. A full swipe of the `content` triggers the `onSwipePrimaryAction` callback,
which is expected to match the `primaryAction`'s onClick callback. Custom accessibility actions
should always be added to the content using `Modifier.semantics` - examples are shown in the code
samples.

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



<h2 id="swipetoreveal-primaryaction-onswipeprimaryaction-modifier-secondaryaction-undoprimaryaction-undosecondaryaction-revealstate-revealdirection-haspartiallyrevealedstate-gestureinclusion-content">SwipeToReveal</h2>

<div class='sourceset sourceset-android'>Android</div>


```kotlin
@Composable
public fun SwipeToReveal(
    primaryAction: @Composable SwipeToRevealScope.() -> Unit,
    onSwipePrimaryAction: () -> Unit,
    modifier: Modifier = Modifier,
    secondaryAction: (@Composable SwipeToRevealScope.() -> Unit)? = null,
    undoPrimaryAction: (@Composable SwipeToRevealScope.() -> Unit)? = null,
    undoSecondaryAction: (@Composable SwipeToRevealScope.() -> Unit)? = null,
    revealState: RevealState = rememberRevealState(),
    revealDirection: RevealDirection = RevealDirection.RightToLeft,
    hasPartiallyRevealedState: Boolean = true,
    gestureInclusion: GestureInclusion =
        if (revealDirection == Bidirectional) {
            bidirectionalGestureInclusion
        } else {
            gestureInclusion(revealState)
        },
    content: @Composable () -> Unit,
)
```


#### Parameters

| | |
| --- | --- |
| primaryAction | The primary action of this component. `SwipeToRevealScope.PrimaryActionButton` should be used to create a button for this slot. If `undoPrimaryAction` is provided, the undo button will be displayed after `SwipeToReveal` has animated to the revealed state and the primary action button has been hidden. |
| onSwipePrimaryAction | A callback which will be triggered when a full swipe is performed. It is expected that the same callback is given to `SwipeToRevealScope.PrimaryActionButton`s onClick action. If `undoPrimaryAction` is provided, that will be displayed after the swipe gesture is completed. |
| modifier | `Modifier` to be applied on the composable. |
| secondaryAction | Optional secondary action of this component. `SwipeToRevealScope.SecondaryActionButton` should be used to create a button for this slot. If `undoSecondaryAction` is provided, the undo button will be displayed after `SwipeToReveal` has animated to the revealed state and the secondary action button has been hidden. |
| undoPrimaryAction | Optional undo action for the primary action of this component. `SwipeToRevealScope.UndoActionButton` should be used to create a button for this slot. Displayed after `SwipeToReveal` has animated to the revealed state and the primary action button has been hidden. |
| undoSecondaryAction | Optional undo action for the secondary action of this component, displayed after `SwipeToReveal` has animated to the revealed state and the secondary action button has been hidden. `undoSecondaryAction` is ignored if the secondary action has not been specified. `SwipeToRevealScope.UndoActionButton` should be used to create a button for this slot. |
| revealState | `RevealState` of the `SwipeToReveal`. |
| revealDirection | The direction from which `SwipeToReveal` can reveal the actions. It is strongly recommended to respect the default value of `RightToLeft` to avoid conflicting with the system-side swipe-to-dismiss gesture. |
| hasPartiallyRevealedState | Determines whether the intermediate states `RightRevealing` and `LeftRevealing` are used. These indicate a settled state, where the primary action is partially revealed. By default, partially revealed state is allowed for single actions - set to false to make actions complete when swiped instead. This flag has no effect if a secondary action is provided (when there are two actions, the component always allows the partially revealed states). |
| gestureInclusion | Provides fine-grained control so that touch gestures can be excluded when they start in a certain region. An instance of `GestureInclusion` can be passed in here which will determine via `GestureInclusion.ignoreGestureStart` whether the gesture should proceed or not. By default, `gestureInclusion` allows gestures everywhere for when `revealState` contains anchors for both directions (see `bidirectionalGestureInclusion`). If it doesn't, then it allows gestures everywhere, except a zone on the left edge, which is used for swipe-to-dismiss (see `gestureInclusion`). |
| content | The content that will be initially displayed over the other actions provided. Custom accessibility actions should always be added to the content using `Modifier.semantics` - examples are shown in the code samples. |