diff --git a/components/ui/dialog.tsx b/components/ui/dialog.tsx index bb589d7d6..531caca5e 100644 --- a/components/ui/dialog.tsx +++ b/components/ui/dialog.tsx @@ -112,27 +112,46 @@ export function Dialog({ const blockOutside = preventOutsideClose || dirty; - const body = ( + const heading = ( + <> +

+ {title} +

+ {description && ( +

+ {description} +

+ )} + + ); + + const footerRow = footer && ( +
{footer}
+ ); + + // With an icon the title, text and body sit in one column beside it (a + // destructive confirm). Without one, the title stays put while a long + // body scrolls under it. The spacing is the same either way. + const body = icon ? ( <>
-
+
{icon} -
-

- {title} -

- {description && ( -

- {description} -

- )} +
+ {heading} {children}
- {footer && ( -
{footer}
- )} + {footerRow} + + ) : ( + <> +
{heading}
+
+ {children} +
+ {footerRow} );