Skip to content

Commit 491fd25

Browse files
kmcfauldlabaj
andauthored
fix(Popper): add null & connected checks for document [6.4.x patch] (#12286)
* fix(Popper): add null & connected checks for document * chore: sync yarn.lock with registry metadata for react-router Yarn hardened mode on public PRs rejects a lockfile that lists stale dependencies for react-router@7.13.0. Refresh the lockfile so `yarn install --immutable` succeeds in CI. Made-with: Cursor --------- Co-authored-by: Donald Labaj <donald.labaj@gmail.com>
1 parent 476782a commit 491fd25

File tree

3 files changed

+16
-17
lines changed

3 files changed

+16
-17
lines changed

packages/react-core/src/helpers/Popper/thirdparty/popper-core/dom-utils/getDocumentElement.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@ import { Window } from '../types';
77
*/
88
export default function getDocumentElement(element: Element | Window): HTMLElement {
99
// $FlowFixMe: assume body is always available
10-
return (isElement(element) ? element.ownerDocument : element.document).documentElement;
10+
return ((isElement(element) ? element.ownerDocument : element.document) || window.document).documentElement;
1111
}

packages/react-core/src/helpers/Popper/thirdparty/react-popper/usePopper.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,17 @@ type State = {
3535

3636
const EMPTY_MODIFIERS: any = [];
3737

38+
function isReferenceConnected(reference: Element | VirtualElement): boolean {
39+
if (reference instanceof Element) {
40+
return reference.isConnected;
41+
}
42+
const { contextElement } = reference;
43+
if (contextElement instanceof Element) {
44+
return contextElement.isConnected;
45+
}
46+
return true;
47+
}
48+
3849
export const usePopper = (
3950
referenceElement: (Element | VirtualElement) | null | undefined,
4051
popperElement: HTMLElement | null | undefined,
@@ -114,6 +125,10 @@ export const usePopper = (
114125
return;
115126
}
116127

128+
if (!isReferenceConnected(referenceElement) || !popperElement.isConnected) {
129+
return;
130+
}
131+
117132
const createPopper = options.createPopper || defaultCreatePopper;
118133
const popperInstance = createPopper(referenceElement, popperElement, popperOptions);
119134

yarn.lock

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5477,13 +5477,6 @@ __metadata:
54775477
languageName: node
54785478
linkType: hard
54795479

5480-
"@types/cookie@npm:^0.6.0":
5481-
version: 0.6.0
5482-
resolution: "@types/cookie@npm:0.6.0"
5483-
checksum: 10c0/5b326bd0188120fb32c0be086b141b1481fec9941b76ad537f9110e10d61ee2636beac145463319c71e4be67a17e85b81ca9e13ceb6e3bb63b93d16824d6c149
5484-
languageName: node
5485-
linkType: hard
5486-
54875480
"@types/d3-array@npm:^3.0.3":
54885481
version: 3.2.1
54895482
resolution: "@types/d3-array@npm:3.2.1"
@@ -19339,10 +19332,8 @@ __metadata:
1933919332
version: 7.13.0
1934019333
resolution: "react-router@npm:7.13.0"
1934119334
dependencies:
19342-
"@types/cookie": "npm:^0.6.0"
1934319335
cookie: "npm:^1.0.1"
1934419336
set-cookie-parser: "npm:^2.6.0"
19345-
turbo-stream: "npm:2.4.0"
1934619337
peerDependencies:
1934719338
react: ">=18"
1934819339
react-dom: ">=18"
@@ -22550,13 +22541,6 @@ __metadata:
2255022541
languageName: node
2255122542
linkType: hard
2255222543

22553-
"turbo-stream@npm:2.4.0":
22554-
version: 2.4.0
22555-
resolution: "turbo-stream@npm:2.4.0"
22556-
checksum: 10c0/e68b2569f1f16e6e9633d090c6024b2ae9f0e97bfeacb572451ca3732e120ebbb546f3bc4afc717c46cb57b5aea6104e04ef497f9912eef6a7641e809518e98a
22557-
languageName: node
22558-
linkType: hard
22559-
2256022544
"tweetnacl@npm:^0.14.3, tweetnacl@npm:~0.14.0":
2256122545
version: 0.14.5
2256222546
resolution: "tweetnacl@npm:0.14.5"

0 commit comments

Comments
 (0)