Skip to content

Commit c29dc76

Browse files
jquensetaion
andauthored
fix: popper imports for common js (#781)
* fix: popper imports for common js * Update package.json Co-Authored-By: Jimmy Jia <tesrin@gmail.com> * Update src/popper.js Co-authored-by: Jimmy Jia <tesrin@gmail.com>
1 parent 64cccbf commit c29dc76

File tree

5 files changed

+78
-23
lines changed

5 files changed

+78
-23
lines changed

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
"scripts": {
3131
"bootstrap": "yarn && yarn --cwd www",
3232
"build": "rimraf lib && yarn build:cjs && yarn build:esm && yarn build:pick",
33-
"build:cjs": "babel src -d lib/cjs",
33+
"build:cjs": "babel src -d lib/cjs && rollup src/popper.js --file lib/cjs/popper.js --format cjs --name popper --plugin @rollup/plugin-node-resolve",
3434
"build:esm": "babel src -d lib/esm --env-name esm",
3535
"build:pick": "cherry-pick ../src --cjs-dir=cjs --esm-dir=esm --cwd=lib",
3636
"deploy-docs": "yarn --cwd www build --prefix-paths && gh-pages -d www/public",
@@ -83,6 +83,7 @@
8383
"@babel/preset-env": "^7.8.7",
8484
"@babel/preset-react": "^7.8.3",
8585
"@react-bootstrap/eslint-config": "^1.3.2",
86+
"@rollup/plugin-node-resolve": "^7.1.1",
8687
"babel-eslint": "^10.1.0",
8788
"babel-plugin-add-module-exports": "^1.0.2",
8889
"babel-plugin-istanbul": "^6.0.0",
@@ -118,6 +119,7 @@
118119
"react-dom": "^16.13.0",
119120
"react-transition-group": "^4.3.0",
120121
"rimraf": "^3.0.2",
122+
"rollup": "^2.0.0",
121123
"simulant": "^0.2.2",
122124
"sinon": "^9.0.0",
123125
"sinon-chai": "^3.5.0",

src/Overlay.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import PropTypes from 'prop-types';
22
import React, { useState } from 'react';
33
import ReactDOM from 'react-dom';
4-
import { placements } from '@popperjs/core/lib/enums';
54
import useCallbackRef from '@restart/hooks/useCallbackRef';
65
import useMergedRefs from '@restart/hooks/useMergedRefs';
6+
import { placements } from './popper';
77
import usePopper, { toModifierMap } from './usePopper';
88
import useRootClose from './useRootClose';
99
import useWaitForDOMRef from './utils/useWaitForDOMRef';

src/popper.js

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import arrow from '@popperjs/core/lib/modifiers/arrow';
2+
import computeStyles from '@popperjs/core/lib/modifiers/computeStyles';
3+
import eventListeners from '@popperjs/core/lib/modifiers/eventListeners';
4+
import flip from '@popperjs/core/lib/modifiers/flip';
5+
import hide from '@popperjs/core/lib/modifiers/hide';
6+
import popperOffsets from '@popperjs/core/lib/modifiers/popperOffsets';
7+
import preventOverflow from '@popperjs/core/lib/modifiers/preventOverflow';
8+
import { placements } from '@popperjs/core/lib/enums';
9+
import { popperGenerator } from '@popperjs/core/lib/popper-base';
10+
11+
// For the common JS build we will turn this file into a bundle with no imports.
12+
// This is b/c the Popper lib is all esm files, and would break in a common js only environment
13+
export const createPopper = popperGenerator({
14+
defaultModifiers: [
15+
hide,
16+
popperOffsets,
17+
computeStyles,
18+
eventListeners,
19+
flip,
20+
preventOverflow,
21+
arrow,
22+
],
23+
});
24+
25+
export { placements };

src/usePopper.js

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,6 @@
11
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
2-
import arrow from '@popperjs/core/lib/modifiers/arrow';
3-
import computeStyles from '@popperjs/core/lib/modifiers/computeStyles';
4-
import eventListeners from '@popperjs/core/lib/modifiers/eventListeners';
5-
import flip from '@popperjs/core/lib/modifiers/flip';
6-
import hide from '@popperjs/core/lib/modifiers/hide';
7-
import popperOffsets from '@popperjs/core/lib/modifiers/popperOffsets';
8-
import preventOverflow from '@popperjs/core/lib/modifiers/preventOverflow';
9-
import { popperGenerator } from '@popperjs/core/lib/popper-base';
102
import useSafeState from '@restart/hooks/useSafeState';
11-
12-
const createPopper = popperGenerator({
13-
defaultModifiers: [
14-
hide,
15-
popperOffsets,
16-
computeStyles,
17-
eventListeners,
18-
flip,
19-
preventOverflow,
20-
arrow,
21-
],
22-
});
3+
import { createPopper } from './popper';
234

245
const initialPopperStyles = {
256
position: 'absolute',

yarn.lock

Lines changed: 48 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1231,6 +1231,24 @@
12311231
resolved "https://registry.yarnpkg.com/@restart/hooks/-/hooks-0.3.21.tgz#5264d12019ffb844dc1fc44d55517ded7b580ee2"
12321232
integrity sha512-Wcu3CFJV+iiqPEIoPVx3/CYnZBRgPeRABo6bLJByRH9ptJXyObn7WYPG7Rv0cg3+55bqcBbG0xEfovzwE2PNXg==
12331233

1234+
"@rollup/plugin-node-resolve@^7.1.1":
1235+
version "7.1.1"
1236+
resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.1.tgz#8c6e59c4b28baf9d223028d0e450e06a485bb2b7"
1237+
integrity sha512-14ddhD7TnemeHE97a4rLOhobfYvUVcaYuqTnL8Ti7Jxi9V9Jr5LY7Gko4HZ5k4h4vqQM0gBQt6tsp9xXW94WPA==
1238+
dependencies:
1239+
"@rollup/pluginutils" "^3.0.6"
1240+
"@types/resolve" "0.0.8"
1241+
builtin-modules "^3.1.0"
1242+
is-module "^1.0.0"
1243+
resolve "^1.14.2"
1244+
1245+
"@rollup/pluginutils@^3.0.6":
1246+
version "3.0.8"
1247+
resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.0.8.tgz#4e94d128d94b90699e517ef045422960d18c8fde"
1248+
integrity sha512-rYGeAc4sxcZ+kPG/Tw4/fwJODC3IXHYDH4qusdN/b6aLw5LPUbzpecYbEJh4sVQGPFJxd2dBU4kc1H3oy9/bnw==
1249+
dependencies:
1250+
estree-walker "^1.0.1"
1251+
12341252
"@samverschueren/stream-to-observable@^0.3.0":
12351253
version "0.3.0"
12361254
resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz#ecdf48d532c58ea477acfcab80348424f8d0662f"
@@ -1355,6 +1373,13 @@
13551373
"@types/prop-types" "*"
13561374
csstype "^2.2.0"
13571375

1376+
"@types/resolve@0.0.8":
1377+
version "0.0.8"
1378+
resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-0.0.8.tgz#f26074d238e02659e323ce1a13d041eee280e194"
1379+
integrity sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==
1380+
dependencies:
1381+
"@types/node" "*"
1382+
13581383
"@webassemblyjs/ast@1.8.5":
13591384
version "1.8.5"
13601385
resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359"
@@ -2296,6 +2321,11 @@ buffer@^5.2.0:
22962321
base64-js "^1.0.2"
22972322
ieee754 "^1.1.4"
22982323

2324+
builtin-modules@^3.1.0:
2325+
version "3.1.0"
2326+
resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.1.0.tgz#aad97c15131eb76b65b50ef208e7584cd76a7484"
2327+
integrity sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==
2328+
22992329
builtin-status-codes@^3.0.0:
23002330
version "3.0.0"
23012331
resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
@@ -4320,6 +4350,11 @@ estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1:
43204350
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
43214351
integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
43224352

4353+
estree-walker@^1.0.1:
4354+
version "1.0.1"
4355+
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700"
4356+
integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==
4357+
43234358
esutils@^2.0.0, esutils@^2.0.2:
43244359
version "2.0.3"
43254360
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
@@ -4882,7 +4917,7 @@ fsevents@^1.2.7:
48824917
nan "^2.12.1"
48834918
node-pre-gyp "^0.12.0"
48844919

4885-
fsevents@~2.1.1:
4920+
fsevents@~2.1.1, fsevents@~2.1.2:
48864921
version "2.1.2"
48874922
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805"
48884923
integrity sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==
@@ -5969,6 +6004,11 @@ is-interactive@^1.0.0:
59696004
resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e"
59706005
integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==
59716006

6007+
is-module@^1.0.0:
6008+
version "1.0.0"
6009+
resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591"
6010+
integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=
6011+
59726012
is-number-object@^1.0.4:
59736013
version "1.0.4"
59746014
resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.4.tgz#36ac95e741cf18b283fc1ddf5e83da798e3ec197"
@@ -9351,6 +9391,13 @@ ripemd160@^2.0.0, ripemd160@^2.0.1:
93519391
hash-base "^3.0.0"
93529392
inherits "^2.0.1"
93539393

9394+
rollup@^2.0.0:
9395+
version "2.0.0"
9396+
resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.0.0.tgz#0bd7a09bd7cdaa70a19ad5a356f2fab90fd2f401"
9397+
integrity sha512-tbvWownITR+0ebaX6iRr7IcLkziTCJacRpmWz03NIj3CZDmGlergYSwdG8wPx68LT0ms1YzqmbjUQHb6ut8pdw==
9398+
optionalDependencies:
9399+
fsevents "~2.1.2"
9400+
93549401
rst-selector-parser@^2.2.3:
93559402
version "2.2.3"
93569403
resolved "https://registry.yarnpkg.com/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz#81b230ea2fcc6066c89e3472de794285d9b03d91"

0 commit comments

Comments
 (0)