Reference version

This is documentation for the next SDK version. For up-to-date documentation, see the latest version (SDK 55).

BasicAlertDialog

A Jetpack Compose BasicAlertDialog component for displaying dialogs with custom content.

Android

Expo UI BasicAlertDialog matches the official Jetpack Compose BasicAlertDialog API and displays a minimal dialog that accepts custom children as its content, giving you full control over the dialog layout.

Installation

Terminal
npx expo install @expo/ui

If you are installing this in an existing React Native app, make sure to install expo in your project.

Usage

Basic dialog with custom content

BasicAlertDialogExample.tsx
import { useState } from 'react'; import { Host, BasicAlertDialog, Button, TextButton, Text, Surface, Column, Spacer, } from '@expo/ui/jetpack-compose'; import { padding, wrapContentWidth, wrapContentHeight, clip, height, align, Shapes, } from '@expo/ui/jetpack-compose/modifiers'; export default function BasicAlertDialogExample() { const [visible, setVisible] = useState(false); return ( <Host matchContents> <Button onClick={() => setVisible(true)}> <Text>Open dialog</Text> </Button> {visible && ( <BasicAlertDialog onDismissRequest={() => setVisible(false)}> <Surface tonalElevation={6} modifiers={[wrapContentWidth(), wrapContentHeight(), clip(Shapes.RoundedCorner(28))]}> <Column modifiers={[padding(16, 16, 16, 16)]}> <Text> This area typically contains the supportive text which presents the details regarding the Dialog's purpose. </Text> <Spacer modifiers={[height(24)]} /> <TextButton onClick={() => setVisible(false)} modifiers={[align('centerEnd')]}> <Text>Confirm</Text> </TextButton> </Column> </Surface> </BasicAlertDialog> )} </Host> ); }

API

import { BasicAlertDialog } from '@expo/ui/jetpack-compose';

Component

BasicAlertDialog

Android

Type: React.Element<BasicAlertDialogProps>

A basic alert dialog that provides a blank container for custom content. Unlike AlertDialog, this component does not have structured title/text/buttons slots.

BasicAlertDialogProps

children

Android
Optional • Type: React.ReactNode

The content to display inside the dialog.

modifiers

Android
Optional • Type: ModifierConfig[]

Modifiers for the component.

onDismissRequest

Android
Optional • Type: () => void

Callback that is called when the user tries to dismiss the dialog (e.g. by tapping outside of it or pressing the back button).

properties

Android
Optional • Type: DialogProperties

Properties for the dialog window.

Types

DialogProperties

Android

Properties for the dialog window, matching DialogProperties in Compose.

PropertyTypeDescription
decorFitsSystemWindows(optional)boolean

Whether the dialog's decor fits system windows (status bar, navigation bar, and more). When true, the dialog's content will be inset to avoid overlapping with system UI.

Default:true
dismissOnBackPress(optional)boolean

Whether the dialog can be dismissed by pressing the back button.

Default:true
dismissOnClickOutside(optional)boolean

Whether the dialog can be dismissed by clicking outside of it.

Default:true
usePlatformDefaultWidth(optional)boolean

Whether the dialog should use the platform default width.

Default:true