Dialog
A modal window that appears on top of the main content, requiring user interaction.
'use client';
import { Button } from '@/components/ui/button';
import {
Dialog,
DialogDescription,
DialogFooter,
DialogHeader,
DialogPopup,
DialogTitle,
DialogTrigger,
} from '@/components/ui/dialog';
export function DialogDefault() {
return (
<Dialog>
<DialogTrigger render={<Button variant='outline' />}>
Open Dialog
</DialogTrigger>
<DialogPopup>
<DialogHeader>
<DialogTitle>Edit Profile</DialogTitle>
<DialogDescription>
Make changes to your profile here. Click save when you're done.
</DialogDescription>
</DialogHeader>
<div className='py-4'>
<p className='text-sm text-muted-foreground'>
Your profile settings will be updated.
</p>
</div>
<DialogFooter>
<Button type='submit'>Save changes</Button>
</DialogFooter>
</DialogPopup>
</Dialog>
);
}
Installation
Usage
import {
Dialog,
DialogDescription,
DialogFooter,
DialogHeader,
DialogPopup,
DialogTitle,
DialogTrigger,
} from "@/components/ui/dialog"<Dialog>
<DialogTrigger>Open</DialogTrigger>
<DialogPopup>
<DialogHeader>
<DialogTitle>Dialog Title</DialogTitle>
<DialogDescription>Dialog description goes here.</DialogDescription>
</DialogHeader>
<DialogFooter>
<Button>Save</Button>
</DialogFooter>
</DialogPopup>
</Dialog>Examples
Without Close Button
'use client';
import { Button } from '@/components/ui/button';
import {
Dialog,
DialogClose,
DialogDescription,
DialogFooter,
DialogHeader,
DialogPopup,
DialogTitle,
DialogTrigger,
} from '@/components/ui/dialog';
export function DialogNoCloseButton() {
return (
<Dialog>
<DialogTrigger render={<Button variant='outline' />}>
Open Dialog
</DialogTrigger>
<DialogPopup showCloseButton={false}>
<DialogHeader>
<DialogTitle>Confirm Action</DialogTitle>
<DialogDescription>
Are you sure you want to proceed with this action?
</DialogDescription>
</DialogHeader>
<DialogFooter className='mt-4'>
<DialogClose render={<Button variant='outline' />}>
Cancel
</DialogClose>
<Button>Confirm</Button>
</DialogFooter>
</DialogPopup>
</Dialog>
);
}