Skip to content

Commit 6ddb8e4

Browse files
chore: allow parent component to forward ref
1 parent 20fef39 commit 6ddb8e4

File tree

1 file changed

+34
-33
lines changed

1 file changed

+34
-33
lines changed

src/design-system/dialog/dialog-root.component.tsx

Lines changed: 34 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -27,38 +27,39 @@ export interface DialogRootProps {
2727
zIndex?: number;
2828
}
2929

30-
export const Root = ({
31-
open,
32-
setOpen,
33-
onCloseAutoFocusRef,
34-
children,
35-
portalContainer,
36-
zIndex,
37-
}: Readonly<DialogRootProps>): JSX.Element => (
38-
<AlertDialog.Root open={open}>
39-
<AlertDialog.Portal container={portalContainer}>
40-
<AlertDialog.Overlay asChild>
41-
<Backdrop zIndex={zIndex} />
42-
</AlertDialog.Overlay>
43-
<AlertDialog.Content
44-
asChild
45-
onEscapeKeyDown={(): void => {
46-
setOpen(false);
47-
}}
48-
onCloseAutoFocus={
49-
onCloseAutoFocusRef &&
50-
((): void => {
51-
onCloseAutoFocusRef.current?.focus();
52-
})
53-
}
54-
>
55-
<Content
56-
className={cx.dialogContent}
57-
style={{ zIndex: zIndex === undefined ? undefined : zIndex + 1 }}
30+
export const Root = React.forwardRef<HTMLDivElement, Readonly<DialogRootProps>>(
31+
(
32+
{ open, setOpen, onCloseAutoFocusRef, children, portalContainer, zIndex },
33+
forwardReference,
34+
) => (
35+
<AlertDialog.Root open={open}>
36+
<AlertDialog.Portal container={portalContainer}>
37+
<AlertDialog.Overlay asChild>
38+
<Backdrop zIndex={zIndex} />
39+
</AlertDialog.Overlay>
40+
<AlertDialog.Content
41+
ref={forwardReference}
42+
asChild
43+
onEscapeKeyDown={(): void => {
44+
setOpen(false);
45+
}}
46+
onCloseAutoFocus={
47+
onCloseAutoFocusRef &&
48+
((): void => {
49+
onCloseAutoFocusRef.current?.focus();
50+
})
51+
}
5852
>
59-
{children}
60-
</Content>
61-
</AlertDialog.Content>
62-
</AlertDialog.Portal>
63-
</AlertDialog.Root>
53+
<Content
54+
className={cx.dialogContent}
55+
style={{ zIndex: zIndex === undefined ? undefined : zIndex + 1 }}
56+
>
57+
{children}
58+
</Content>
59+
</AlertDialog.Content>
60+
</AlertDialog.Portal>
61+
</AlertDialog.Root>
62+
),
6463
);
64+
65+
Root.displayName = 'DialogRoot';

0 commit comments

Comments
 (0)