Skip to main content

Get Started

react-dialogues is a lightweight React library for displaying modals, toasts, and popovers with an imperative API. No need to manage state or place components in your JSX tree.

npm bundle size

Installation

npm install react-dialogues

And that's it! No more configuration is required.

Quick Examples

Show a modal dialog with a single function call. The Modal.show() method accepts content and options, returning a controller that doubles as a Promise.

import { Button, Modal } from 'react-dialogues';

<Button
onClick={() => {
Modal.show('Welcome to react-dialogues!', {
title: 'Hello',
});
}}
>
Show Modal
</Button>;

Async/Promise Handling

Modal.show() returns a Promise that resolves when the modal closes. Use await to get the user's chosen action and respond accordingly.

import { Button, Modal, Toast } from 'react-dialogues';

async function handleClick() {
const [action] = await Modal.show({
title: 'Unsaved Changes',
content: 'You have unsaved changes…',
buttons: [
'Cancel',
<Button value="discard" type="secondary">
Discard
</Button>,
<Button value="save">Save</Button>,
],
});

if (action === 'save') {
Toast.success('Changes saved!');
} else if (action === 'discard') {
Toast.info('Changes discarded');
} else {
Toast.info('Action cancelled');
}
}

<Button onClick={handleClick}>Close Document</Button>;

Toast

Display notification messages with Toast.show(). Use shorthand methods like Toast.success(), Toast.error(), Toast.warning(), and Toast.info() for styled notifications.

import { Button, Toast } from 'react-dialogues';

<Button
onClick={() => {
Toast.success('Operation completed successfully!');
}}
>
Show Toast
</Button>;

Tooltip

Wrap any element with Tooltip to show contextual information on hover or focus.

import { Tooltip, Button } from 'react-dialogues';

<Tooltip content="Helpful information appears here">
<Button>Hover me</Button>
</Tooltip>;

Next Steps