--- title: Modal sidebar_label: Modal --- import { StoryWithControls } from '../../../src/components/StorybookWrapper'; # Modal Modal dialog component for displaying content that requires user attention or interaction. Supports customizable buttons, drag/resize, and confirmation dialogs. ## Live Example ## Try It Edit the code below to experiment with the component: ```tsx live function ModalDemo() { const [isOpen, setIsOpen] = React.useState(false); return ( <> setIsOpen(false)} title="Example Modal" primaryButtonName="Submit" onHandledPrimaryAction={() => { alert('Submitted!'); setIsOpen(false); }} >

This is the modal content. Click Submit or close the modal.

); } ``` ## Danger Modal ```tsx live function DangerModal() { const [isOpen, setIsOpen] = React.useState(false); return ( <> setIsOpen(false)} title="Confirm Delete" primaryButtonName="Delete" primaryButtonStyle="danger" onHandledPrimaryAction={() => { alert('Deleted!'); setIsOpen(false); }} >

Are you sure you want to delete this item? This action cannot be undone.

); } ``` ## Confirmation Dialogs ```tsx live function ConfirmationDialogs() { return (
); } ``` ## Props | Prop | Type | Default | Description | |------|------|---------|-------------| | `disablePrimaryButton` | `boolean` | `false` | Whether the primary button is disabled. | | `primaryButtonName` | `string` | `"Submit"` | Text for the primary action button. | | `primaryButtonStyle` | `string` | `"primary"` | The style of the primary action button. | | `show` | `boolean` | `false` | Whether the modal is visible. Use the "Try It" example below for a working demo. | | `title` | `string` | `"I'm a modal!"` | Title displayed in the modal header. | | `resizable` | `boolean` | `false` | Whether the modal can be resized by dragging corners. | | `draggable` | `boolean` | `false` | Whether the modal can be dragged by its header. | | `width` | `number` | `500` | Width of the modal in pixels. | ## Import ```tsx import { Modal } from '@superset/components'; ``` --- :::tip[Improve this page] This documentation is auto-generated from the component's Storybook story. Help improve it by [editing the story file](https://github.com/apache/superset/edit/master/superset-frontend/packages/superset-ui-core/src/components/Modal/Modal.stories.tsx). :::