Skip to content

Commit a83df0f

Browse files
committed
FIXME: patch patternfly based on patternfly/patternfly-react#12284
1 parent c6943b8 commit a83df0f

3 files changed

Lines changed: 156 additions & 4 deletions

File tree

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
diff --git a/dist/esm/helpers/Popper/thirdparty/popper-core/dom-utils/getDocumentElement.js b/dist/esm/helpers/Popper/thirdparty/popper-core/dom-utils/getDocumentElement.js
2+
index 4612a043d56db95cb2a557db903e65ae9e048747..0ee8be2cee0b0c24aae60ad17177d7a8c5dd9694 100644
3+
--- a/dist/esm/helpers/Popper/thirdparty/popper-core/dom-utils/getDocumentElement.js
4+
+++ b/dist/esm/helpers/Popper/thirdparty/popper-core/dom-utils/getDocumentElement.js
5+
@@ -5,6 +5,6 @@ import { isElement } from './instanceOf';
6+
*/
7+
export default function getDocumentElement(element) {
8+
// $FlowFixMe: assume body is always available
9+
- return (isElement(element) ? element.ownerDocument : element.document).documentElement;
10+
+ return ((isElement(element) ? element.ownerDocument : element.document) || window.document).documentElement;
11+
}
12+
//# sourceMappingURL=getDocumentElement.js.map
13+
diff --git a/dist/esm/helpers/Popper/thirdparty/react-popper/usePopper.js b/dist/esm/helpers/Popper/thirdparty/react-popper/usePopper.js
14+
index c7383e1d1a724488122cd9a5517d8c93c49fa5f6..b2e4eb196bd30cedb8faafe5a9c89d1c508b50f7 100644
15+
--- a/dist/esm/helpers/Popper/thirdparty/react-popper/usePopper.js
16+
+++ b/dist/esm/helpers/Popper/thirdparty/react-popper/usePopper.js
17+
@@ -11,6 +11,16 @@ const fromEntries = (entries) => entries.reduce((acc, [key, value]) => {
18+
return acc;
19+
}, {});
20+
const EMPTY_MODIFIERS = [];
21+
+function isReferenceConnected(reference) {
22+
+ if (reference instanceof Element) {
23+
+ return reference.isConnected;
24+
+ }
25+
+ const { contextElement } = reference;
26+
+ if (contextElement instanceof Element) {
27+
+ return contextElement.isConnected;
28+
+ }
29+
+ return true;
30+
+}
31+
export const usePopper = (referenceElement, popperElement, options = {}) => {
32+
const prevOptions = useRef(null);
33+
const optionsWithDefaults = {
34+
@@ -74,6 +84,9 @@ export const usePopper = (referenceElement, popperElement, options = {}) => {
35+
if (referenceElement == null || popperElement == null) {
36+
return;
37+
}
38+
+ if (!isReferenceConnected(referenceElement) || !popperElement.isConnected) {
39+
+ return;
40+
+ }
41+
const createPopper = options.createPopper || defaultCreatePopper;
42+
const popperInstance = createPopper(referenceElement, popperElement, popperOptions);
43+
popperInstanceRef.current = popperInstance;
44+
diff --git a/dist/js/helpers/Popper/thirdparty/popper-core/dom-utils/getDocumentElement.js b/dist/js/helpers/Popper/thirdparty/popper-core/dom-utils/getDocumentElement.js
45+
index 7f7bce6aff76c02e4b14511cb13825e9a3bd33dd..91f3b7ff2b7b0a0dee0ba12f63ba65d7da816edd 100644
46+
--- a/dist/js/helpers/Popper/thirdparty/popper-core/dom-utils/getDocumentElement.js
47+
+++ b/dist/js/helpers/Popper/thirdparty/popper-core/dom-utils/getDocumentElement.js
48+
@@ -7,7 +7,7 @@ const instanceOf_1 = require("./instanceOf");
49+
*/
50+
function getDocumentElement(element) {
51+
// $FlowFixMe: assume body is always available
52+
- return ((0, instanceOf_1.isElement)(element) ? element.ownerDocument : element.document).documentElement;
53+
+ return (((0, instanceOf_1.isElement)(element) ? element.ownerDocument : element.document) || window.document).documentElement;
54+
}
55+
exports.default = getDocumentElement;
56+
//# sourceMappingURL=getDocumentElement.js.map
57+
diff --git a/dist/js/helpers/Popper/thirdparty/react-popper/usePopper.js b/dist/js/helpers/Popper/thirdparty/react-popper/usePopper.js
58+
index 4c97577daea80906a3d64a6b833558328935fe79..6e7884ae9170f510b9c248a8f73f58a5f1872f4c 100644
59+
--- a/dist/js/helpers/Popper/thirdparty/react-popper/usePopper.js
60+
+++ b/dist/js/helpers/Popper/thirdparty/react-popper/usePopper.js
61+
@@ -14,6 +14,16 @@ const fromEntries = (entries) => entries.reduce((acc, [key, value]) => {
62+
return acc;
63+
}, {});
64+
const EMPTY_MODIFIERS = [];
65+
+function isReferenceConnected(reference) {
66+
+ if (reference instanceof Element) {
67+
+ return reference.isConnected;
68+
+ }
69+
+ const { contextElement } = reference;
70+
+ if (contextElement instanceof Element) {
71+
+ return contextElement.isConnected;
72+
+ }
73+
+ return true;
74+
+}
75+
const usePopper = (referenceElement, popperElement, options = {}) => {
76+
const prevOptions = (0, react_1.useRef)(null);
77+
const optionsWithDefaults = {
78+
@@ -77,6 +87,9 @@ const usePopper = (referenceElement, popperElement, options = {}) => {
79+
if (referenceElement == null || popperElement == null) {
80+
return;
81+
}
82+
+ if (!isReferenceConnected(referenceElement) || !popperElement.isConnected) {
83+
+ return;
84+
+ }
85+
const createPopper = options.createPopper || popper_1.createPopper;
86+
const popperInstance = createPopper(referenceElement, popperElement, popperOptions);
87+
popperInstanceRef.current = popperInstance;
88+
diff --git a/src/helpers/Popper/thirdparty/popper-core/dom-utils/getDocumentElement.ts b/src/helpers/Popper/thirdparty/popper-core/dom-utils/getDocumentElement.ts
89+
index 2489986c00f20b6712012def8c973b984b91f527..76faa40bc2d0cd9eddc4e9c4dbc49ae3a2e6b5d8 100644
90+
--- a/src/helpers/Popper/thirdparty/popper-core/dom-utils/getDocumentElement.ts
91+
+++ b/src/helpers/Popper/thirdparty/popper-core/dom-utils/getDocumentElement.ts
92+
@@ -7,5 +7,5 @@ import { Window } from '../types';
93+
*/
94+
export default function getDocumentElement(element: Element | Window): HTMLElement {
95+
// $FlowFixMe: assume body is always available
96+
- return (isElement(element) ? element.ownerDocument : element.document).documentElement;
97+
+ return ((isElement(element) ? element.ownerDocument : element.document) || window.document).documentElement;
98+
}
99+
diff --git a/src/helpers/Popper/thirdparty/react-popper/usePopper.ts b/src/helpers/Popper/thirdparty/react-popper/usePopper.ts
100+
index 97b99893ae4a902c475624e67a3598bbb50a2100..f105144b9d94b60e5be0db9c71a507f2eef6aa6c 100644
101+
--- a/src/helpers/Popper/thirdparty/react-popper/usePopper.ts
102+
+++ b/src/helpers/Popper/thirdparty/react-popper/usePopper.ts
103+
@@ -35,6 +35,17 @@ type State = {
104+
105+
const EMPTY_MODIFIERS: any = [];
106+
107+
+function isReferenceConnected(reference: Element | VirtualElement): boolean {
108+
+ if (reference instanceof Element) {
109+
+ return reference.isConnected;
110+
+ }
111+
+ const { contextElement } = reference;
112+
+ if (contextElement instanceof Element) {
113+
+ return contextElement.isConnected;
114+
+ }
115+
+ return true;
116+
+}
117+
+
118+
export const usePopper = (
119+
referenceElement: (Element | VirtualElement) | null | undefined,
120+
popperElement: HTMLElement | null | undefined,
121+
@@ -114,6 +125,10 @@ export const usePopper = (
122+
return;
123+
}
124+
125+
+ if (!isReferenceConnected(referenceElement) || !popperElement.isConnected) {
126+
+ return;
127+
+ }
128+
+
129+
const createPopper = options.createPopper || defaultCreatePopper;
130+
const popperInstance = createPopper(referenceElement, popperElement, popperOptions);
131+

frontend/package.json

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@
157157
"@patternfly/react-charts": "~8.4.0",
158158
"@patternfly/react-code-editor": "~6.4.0",
159159
"@patternfly/react-component-groups": "~6.4.0",
160-
"@patternfly/react-core": "~6.4.0",
160+
"@patternfly/react-core": "patch:@patternfly/react-core@npm%3A6.4.0#~/.yarn/patches/@patternfly-react-core-npm-6.4.0-4761df679f.patch",
161161
"@patternfly/react-data-view": "6.4.0-prerelease.12",
162162
"@patternfly/react-drag-drop": "~6.4.0",
163163
"@patternfly/react-icons": "~6.4.0",
@@ -323,7 +323,11 @@
323323
"glob-parent": "^5.1.2",
324324
"hosted-git-info": "^3.0.8",
325325
"lodash-es": "^4.17.23",
326-
"postcss": "^8.2.13"
326+
"postcss": "^8.2.13",
327+
"@patternfly/react-core@npm:^6.1.0": "patch:@patternfly/react-core@npm%3A6.4.0#~/.yarn/patches/@patternfly-react-core-npm-6.4.0-4761df679f.patch",
328+
"@patternfly/react-core@npm:^6.0.0": "patch:@patternfly/react-core@npm%3A6.4.0#~/.yarn/patches/@patternfly-react-core-npm-6.4.0-4761df679f.patch",
329+
"@patternfly/react-core@npm:^6.4.0": "patch:@patternfly/react-core@npm%3A6.4.0#~/.yarn/patches/@patternfly-react-core-npm-6.4.0-4761df679f.patch",
330+
"@patternfly/react-core@npm:^6.0.0-prerelease.21": "patch:@patternfly/react-core@npm%3A6.4.0#~/.yarn/patches/@patternfly-react-core-npm-6.4.0-4761df679f.patch"
327331
},
328332
"lint-staged": {
329333
"*.{js,jsx,ts,tsx,json,gql,graphql}": "eslint --color --fix"

frontend/yarn.lock

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3534,7 +3534,7 @@ __metadata:
35343534
languageName: node
35353535
linkType: hard
35363536

3537-
"@patternfly/react-core@npm:^6.0.0, @patternfly/react-core@npm:^6.0.0-prerelease.21, @patternfly/react-core@npm:^6.1.0, @patternfly/react-core@npm:^6.4.0, @patternfly/react-core@npm:^6.4.1, @patternfly/react-core@npm:~6.4.0":
3537+
"@patternfly/react-core@npm:6.4.0, @patternfly/react-core@npm:^6.4.1":
35383538
version: 6.4.1
35393539
resolution: "@patternfly/react-core@npm:6.4.1"
35403540
dependencies:
@@ -3551,6 +3551,23 @@ __metadata:
35513551
languageName: node
35523552
linkType: hard
35533553

3554+
"@patternfly/react-core@patch:@patternfly/react-core@npm%3A6.4.0#~/.yarn/patches/@patternfly-react-core-npm-6.4.0-4761df679f.patch":
3555+
version: 6.4.1
3556+
resolution: "@patternfly/react-core@patch:@patternfly/react-core@npm%3A6.4.1#~/.yarn/patches/@patternfly-react-core-npm-6.4.0-4761df679f.patch::version=6.4.1&hash=88cdf9"
3557+
dependencies:
3558+
"@patternfly/react-icons": "npm:^6.4.0"
3559+
"@patternfly/react-styles": "npm:^6.4.0"
3560+
"@patternfly/react-tokens": "npm:^6.4.0"
3561+
focus-trap: "npm:7.6.4"
3562+
react-dropzone: "npm:^14.3.5"
3563+
tslib: "npm:^2.8.1"
3564+
peerDependencies:
3565+
react: ^17 || ^18 || ^19
3566+
react-dom: ^17 || ^18 || ^19
3567+
checksum: 10c0/76321a78bbca72aeb433385c678b4356bc4808de41eeb8d0eee417846c239dd767120a4b1219b3c47071cedef0b21386cd9f06c9a65f733ce478a96afd66cc81
3568+
languageName: node
3569+
linkType: hard
3570+
35543571
"@patternfly/react-data-view@npm:6.4.0-prerelease.12":
35553572
version: 6.4.0-prerelease.12
35563573
resolution: "@patternfly/react-data-view@npm:6.4.0-prerelease.12"
@@ -17417,7 +17434,7 @@ __metadata:
1741717434
"@patternfly/react-charts": "npm:~8.4.0"
1741817435
"@patternfly/react-code-editor": "npm:~6.4.0"
1741917436
"@patternfly/react-component-groups": "npm:~6.4.0"
17420-
"@patternfly/react-core": "npm:~6.4.0"
17437+
"@patternfly/react-core": "patch:@patternfly/react-core@npm%3A6.4.0#~/.yarn/patches/@patternfly-react-core-npm-6.4.0-4761df679f.patch"
1742117438
"@patternfly/react-data-view": "npm:6.4.0-prerelease.12"
1742217439
"@patternfly/react-drag-drop": "npm:~6.4.0"
1742317440
"@patternfly/react-icons": "npm:~6.4.0"

0 commit comments

Comments
 (0)