Expo App UIExpo App UI
Components

Dialog

Confirmation and alert dialog with title, description, and configurable actions.

Installation

npx expo-app-ui add dialog

Usage

import Dialog from "@/components/ui/dialog";
import { useState } from "react";

const [open, setOpen] = useState(false);

<Dialog
  visible={open}
  onDismiss={() => setOpen(false)}
  title="Delete item?"
  description="This action cannot be undone."
  actions={[
    { label: "Cancel", onPress: () => setOpen(false), variant: "secondary" },
    { label: "Delete", onPress: handleDelete, variant: "danger" },
  ]}
/>

Props

PropTypeDefaultDescription
visiblebooleanrequiredShow/hide
onDismiss() => voidrequiredDismiss handler
titlestring-Dialog title
descriptionstring-Dialog body text
childrenReactNode-Custom content
actionsDialogAction[]-Footer action buttons
dismissOnBackdropbooleantrueTap backdrop to close
dismissOnBackPressbooleantrueAndroid back to close
backgroundColorstring'#FFFFFF'Dialog bg
backdropColorstring'rgba(0,0,0,0.5)'Backdrop color
borderRadiusnumber14Dialog radius

DialogAction: { label: string; onPress: () => void; variant?: 'primary' | 'secondary' | 'danger'; disabled?: boolean }.

Accessibility

  • accessibilityRole="alert" on the dialog
  • accessibilityViewIsModal on the modal
  • Native Android back press is handled when dismissOnBackPress is true

On this page

Find this useful?

Buy me a coffee