diff --git a/web/src/shared/ui/dialog.tsx b/web/src/shared/ui/dialog.tsx index 9b000382..1512c46d 100644 --- a/web/src/shared/ui/dialog.tsx +++ b/web/src/shared/ui/dialog.tsx @@ -28,6 +28,20 @@ const Dialog = ({ open: controlledOpen, onOpenChange, children }: DialogProps) = const open = controlledOpen ?? uncontrolledOpen const handleOpenChange = onOpenChange ?? setUncontrolledOpen + React.useEffect(() => { + if (!open || typeof document === 'undefined') { + return undefined + } + + const { body } = document + const previousOverflow = body.style.overflow + body.style.overflow = 'hidden' + + return () => { + body.style.overflow = previousOverflow + } + }, [open]) + return ( {children} @@ -96,39 +110,37 @@ const DialogContent = React.forwardRef -
-
e.stopPropagation()} - {...props} +
e.stopPropagation()} + {...props} + > + {children} + -
+ + + +
)