Skip to content

Commit 1f756a3

Browse files
committed
passthrough ownerDocument to <Portal>
1 parent 6743015 commit 1f756a3

File tree

4 files changed

+11
-4
lines changed

4 files changed

+11
-4
lines changed

Diff for: packages/@headlessui-react/src/components/combobox/combobox.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -1685,6 +1685,7 @@ function OptionsFn<TTag extends ElementType = typeof DEFAULT_OPTIONS_TAG>(
16851685
actions.setOptionsElement,
16861686
setLocalOptionsElement
16871687
)
1688+
let portalOwnerDocument = useOwnerDocument(data.buttonElement || data.inputElement)
16881689
let ownerDocument = useOwnerDocument(data.optionsElement)
16891690

16901691
let usesOpenClosedState = useOpenClosed()
@@ -1819,7 +1820,7 @@ function OptionsFn<TTag extends ElementType = typeof DEFAULT_OPTIONS_TAG>(
18191820
let render = useRender()
18201821

18211822
return (
1822-
<Portal enabled={portal ? props.static || visible : false}>
1823+
<Portal enabled={portal ? props.static || visible : false} ownerDocument={portalOwnerDocument}>
18231824
<ComboboxDataContext.Provider
18241825
value={data.mode === ValueMode.Multi ? data : { ...data, isSelected }}
18251826
>

Diff for: packages/@headlessui-react/src/components/listbox/listbox.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -951,6 +951,7 @@ function OptionsFn<TTag extends ElementType = typeof DEFAULT_OPTIONS_TAG>(
951951
let data = useData('Listbox.Options')
952952
let actions = useActions('Listbox.Options')
953953

954+
let portalOwnerDocument = useOwnerDocument(data.buttonElement)
954955
let ownerDocument = useOwnerDocument(data.optionsElement)
955956

956957
let usesOpenClosedState = useOpenClosed()
@@ -1163,7 +1164,7 @@ function OptionsFn<TTag extends ElementType = typeof DEFAULT_OPTIONS_TAG>(
11631164
let render = useRender()
11641165

11651166
return (
1166-
<Portal enabled={portal ? props.static || visible : false}>
1167+
<Portal enabled={portal ? props.static || visible : false} ownerDocument={portalOwnerDocument}>
11671168
<ListboxDataContext.Provider
11681169
value={data.mode === ValueMode.Multi ? data : { ...data, isSelected }}
11691170
>

Diff for: packages/@headlessui-react/src/components/menu/menu.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -638,6 +638,7 @@ function ItemsFn<TTag extends ElementType = typeof DEFAULT_ITEMS_TAG>(
638638
useEvent((element) => dispatch({ type: ActionTypes.SetItemsElement, element })),
639639
setLocalItemsElement
640640
)
641+
let portalOwnerDocument = useOwnerDocument(state.buttonElement)
641642
let ownerDocument = useOwnerDocument(state.itemsElement)
642643

643644
// Always enable `portal` functionality, when `anchor` is enabled
@@ -824,7 +825,7 @@ function ItemsFn<TTag extends ElementType = typeof DEFAULT_ITEMS_TAG>(
824825
let render = useRender()
825826

826827
return (
827-
<Portal enabled={portal ? props.static || visible : false}>
828+
<Portal enabled={portal ? props.static || visible : false} ownerDocument={portalOwnerDocument}>
828829
{render({
829830
ourProps,
830831
theirProps,

Diff for: packages/@headlessui-react/src/components/popover/popover.tsx

+5-1
Original file line numberDiff line numberDiff line change
@@ -888,6 +888,7 @@ function PanelFn<TTag extends ElementType = typeof DEFAULT_PANEL_TAG>(
888888
useEvent((panel) => dispatch({ type: ActionTypes.SetPanel, panel })),
889889
setLocalPanelElement
890890
)
891+
let portalOwnerDocument = useOwnerDocument(state.button)
891892
let ownerDocument = useOwnerDocument(internalPanelRef)
892893

893894
useIsoMorphicEffect(() => {
@@ -1080,7 +1081,10 @@ function PanelFn<TTag extends ElementType = typeof DEFAULT_PANEL_TAG>(
10801081
<ResetOpenClosedProvider>
10811082
<PopoverPanelContext.Provider value={id}>
10821083
<PopoverAPIContext.Provider value={{ close, isPortalled }}>
1083-
<Portal enabled={portal ? props.static || visible : false}>
1084+
<Portal
1085+
enabled={portal ? props.static || visible : false}
1086+
ownerDocument={portalOwnerDocument}
1087+
>
10841088
{visible && isPortalled && (
10851089
<Hidden
10861090
id={beforePanelSentinelId}

0 commit comments

Comments
 (0)