Skip to content

Commit ccf60f2

Browse files
committed
WIP: Add initial polyfill
1 parent a5ce8d0 commit ccf60f2

File tree

5 files changed

+70
-30
lines changed

5 files changed

+70
-30
lines changed

package.json

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@
5454
"jest": "23.6.0",
5555
"lint-staged": "8.1.0",
5656
"prettier": "1.15.2",
57-
"react": "16.6.3",
58-
"react-dom": "16.6.3",
57+
"react": "15.6.0",
58+
"react-dom": "15.6.0",
5959
"react-testing-library": "5.3.0",
6060
"webpack": "4.26.1",
6161
"webpack-cli": "3.1.2"
@@ -91,5 +91,8 @@
9191
"hooks": {
9292
"pre-commit": "lint-staged"
9393
}
94+
},
95+
"dependencies": {
96+
"create-react-context": "^0.2.3"
9497
}
9598
}

src/ScrollArea.jsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
import React, { Component, createRef } from "react";
22
import { ScrollToContext } from "./ScrollTo";
33
import generateId from "./utilities/generateId";
4+
import createReactContext from "create-react-context";
45

56
export default class ScrollArea extends Component {
67
static contextType = ScrollToContext;
78

89
constructor(props) {
910
super(props);
1011

11-
this.node = createRef();
12+
this.node = createRef ? createRef() : createReactContext();
1213
this.id = this.props.id || generateId();
1314
}
1415

src/ScrollTo.jsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
import React, { Component, createContext } from "react";
22
import { relative } from "./utilities/relative";
3+
import createReactContext from "create-react-context";
34

4-
export const ScrollToContext = createContext("scrollToContext");
5+
export const ScrollToContext = !createContext
6+
? createReactContext({})
7+
: createContext({});
58

69
/**
710
* Component that uses render props to inject

src/tests/ScrollTo.spec.jsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import React from "react";
22
import { render, cleanup, fireEvent } from "react-testing-library";
33
import { shallow } from "enzyme";
44
import ScrollTo from "../ScrollTo";
5+
import createReactContext from "create-react-context";
56

67
afterEach(cleanup);
78

@@ -175,7 +176,7 @@ describe("Test render prop.", () => {
175176
});
176177

177178
it("Should scroll by ref when provided", () => {
178-
const refDOM = React.createRef();
179+
const refDOM = React.createRef ? React.createRef() : createReactContext();
179180
const { getByText } = render(
180181
<ScrollTo>
181182
{({ scrollTo }) => (
@@ -226,7 +227,7 @@ describe("Test render prop.", () => {
226227
});
227228

228229
it("Should handle using the relative() function", () => {
229-
const refDOM = React.createRef();
230+
const refDOM = React.createRef ? React.createRef() : createReactContext();
230231
const { getByText, baseElement } = render(
231232
<ScrollTo>
232233
{({ scrollTo, relative }) => (

yarn.lock

Lines changed: 56 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -3034,7 +3034,7 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4:
30343034
safe-buffer "^5.0.1"
30353035
sha.js "^2.4.8"
30363036

3037-
create-react-class@^15.6.2:
3037+
create-react-class@^15.5.2, create-react-class@^15.6.2:
30383038
version "15.6.3"
30393039
resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.3.tgz#2d73237fb3f970ae6ebe011a9e66f46dbca80036"
30403040
integrity sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg==
@@ -3043,6 +3043,14 @@ create-react-class@^15.6.2:
30433043
loose-envify "^1.3.1"
30443044
object-assign "^4.1.1"
30453045

3046+
create-react-context@^0.2.3:
3047+
version "0.2.3"
3048+
resolved "https://registry.yarnpkg.com/create-react-context/-/create-react-context-0.2.3.tgz#9ec140a6914a22ef04b8b09b7771de89567cb6f3"
3049+
integrity sha512-CQBmD0+QGgTaxDL3OX1IDXYqjkp2It4RIbcb99jS6AEg27Ga+a9G3JtK6SIu0HBwPLZlmwt9F7UwWA4Bn92Rag==
3050+
dependencies:
3051+
fbjs "^0.8.0"
3052+
gud "^1.0.0"
3053+
30463054
[email protected], cross-spawn@^6.0.0, cross-spawn@^6.0.5:
30473055
version "6.0.5"
30483056
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
@@ -4252,6 +4260,19 @@ fb-watchman@^2.0.0:
42524260
dependencies:
42534261
bser "^2.0.0"
42544262

4263+
fbjs@^0.8.0:
4264+
version "0.8.17"
4265+
resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd"
4266+
integrity sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=
4267+
dependencies:
4268+
core-js "^1.0.0"
4269+
isomorphic-fetch "^2.1.1"
4270+
loose-envify "^1.0.0"
4271+
object-assign "^4.1.0"
4272+
promise "^7.1.1"
4273+
setimmediate "^1.0.5"
4274+
ua-parser-js "^0.7.18"
4275+
42554276
fbjs@^0.8.16, fbjs@^0.8.9:
42564277
version "0.8.16"
42574278
resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.16.tgz#5e67432f550dc41b572bf55847b8aca64e5337db"
@@ -4767,6 +4788,11 @@ growly@^1.3.0:
47674788
resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
47684789
integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=
47694790

4791+
gud@^1.0.0:
4792+
version "1.0.0"
4793+
resolved "https://registry.yarnpkg.com/gud/-/gud-1.0.0.tgz#a489581b17e6a70beca9abe3ae57de7a499852c0"
4794+
integrity sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==
4795+
47704796
47714797
version "5.0.0"
47724798
resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.0.0.tgz#a55ecd99222f4c48fd8c01c625ce3b349d0a0e80"
@@ -7830,14 +7856,22 @@ prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.8, prop-types@^15.5.9,
78307856
loose-envify "^1.3.1"
78317857
object-assign "^4.1.1"
78327858

7833-
prop-types@^15.6.2:
7859+
prop-types@^15.5.7, prop-types@^15.6.2:
78347860
version "15.6.2"
78357861
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102"
78367862
integrity sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==
78377863
dependencies:
78387864
loose-envify "^1.3.1"
78397865
object-assign "^4.1.1"
78407866

7867+
prop-types@~15.5.7:
7868+
version "15.5.10"
7869+
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.10.tgz#2797dfc3126182e3a95e3dfbb2e893ddd7456154"
7870+
integrity sha1-J5ffwxJhguOpXj37suiT3ddFYVQ=
7871+
dependencies:
7872+
fbjs "^0.8.9"
7873+
loose-envify "^1.3.1"
7874+
78417875
proxy-addr@~2.0.3:
78427876
version "2.0.3"
78437877
resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.3.tgz#355f262505a621646b3130a728eb647e22055341"
@@ -8058,15 +8092,15 @@ react-docgen@^3.0.0-rc.1:
80588092
node-dir "^0.1.10"
80598093
recast "^0.16.0"
80608094

8061-
react-dom@16.6.3:
8062-
version "16.6.3"
8063-
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.6.3.tgz#8fa7ba6883c85211b8da2d0efeffc9d3825cccc0"
8064-
integrity sha512-8ugJWRCWLGXy+7PmNh8WJz3g1TaTUt1XyoIcFN+x0Zbkoz+KKdUyx1AQLYJdbFXjuF41Nmjn5+j//rxvhFjgSQ==
8095+
react-dom@15.6.0:
8096+
version "15.6.0"
8097+
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.6.0.tgz#8bc23cb0c80e706355b76ca9f8ce47cf7bdfb6d1"
8098+
integrity sha1-i8I8sMgOcGNVt2yp+M5Hz3vfttE=
80658099
dependencies:
8100+
fbjs "^0.8.9"
80668101
loose-envify "^1.1.0"
8067-
object-assign "^4.1.1"
8068-
prop-types "^15.6.2"
8069-
scheduler "^0.11.2"
8102+
object-assign "^4.1.0"
8103+
prop-types "~15.5.7"
80708104

80718105
react-error-overlay@^5.1.0:
80728106
version "5.1.0"
@@ -8184,15 +8218,16 @@ react-treebeard@^3.1.0:
81848218
shallowequal "^1.1.0"
81858219
velocity-react "^1.4.1"
81868220

8187-
react@16.6.3:
8188-
version "16.6.3"
8189-
resolved "https://registry.yarnpkg.com/react/-/react-16.6.3.tgz#25d77c91911d6bbdd23db41e70fb094cc1e0871c"
8190-
integrity sha512-zCvmH2vbEolgKxtqXL2wmGCUxUyNheYn/C+PD1YAjfxHC54+MhdruyhO7QieQrYsYeTxrn93PM2y0jRH1zEExw==
8221+
react@15.6.0:
8222+
version "15.6.0"
8223+
resolved "https://registry.yarnpkg.com/react/-/react-15.6.0.tgz#c23299b48e30ed302508ce89e1a02c919f826bce"
8224+
integrity sha1-wjKZtI4w7TAlCM6J4aAskZ+Ca84=
81918225
dependencies:
8226+
create-react-class "^15.5.2"
8227+
fbjs "^0.8.9"
81928228
loose-envify "^1.1.0"
8193-
object-assign "^4.1.1"
8194-
prop-types "^15.6.2"
8195-
scheduler "^0.11.2"
8229+
object-assign "^4.1.0"
8230+
prop-types "^15.5.7"
81968231

81978232
read-pkg-up@^1.0.1:
81988233
version "1.0.1"
@@ -8710,14 +8745,6 @@ sax@^1.2.4:
87108745
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
87118746
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
87128747

8713-
scheduler@^0.11.2:
8714-
version "0.11.2"
8715-
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.11.2.tgz#a8db5399d06eba5abac51b705b7151d2319d33d3"
8716-
integrity sha512-+WCP3s3wOaW4S7C1tl3TEXp4l9lJn0ZK8G3W3WKRWmw77Z2cIFUW2MiNTMHn5sCjxN+t7N43HAOOgMjyAg5hlg==
8717-
dependencies:
8718-
loose-envify "^1.1.0"
8719-
object-assign "^4.1.1"
8720-
87218748
schema-utils@^0.4.4, schema-utils@^0.4.5:
87228749
version "0.4.5"
87238750
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.5.tgz#21836f0608aac17b78f9e3e24daff14a5ca13a3e"
@@ -9588,6 +9615,11 @@ typedarray@^0.0.6:
95889615
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
95899616
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
95909617

9618+
ua-parser-js@^0.7.18:
9619+
version "0.7.19"
9620+
resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.19.tgz#94151be4c0a7fb1d001af7022fdaca4642659e4b"
9621+
integrity sha512-T3PVJ6uz8i0HzPxOF9SWzWAlfN/DavlpQqepn22xgve/5QecC+XMCAtmUNnY7C9StehaV6exjUCI801lOI7QlQ==
9622+
95919623
ua-parser-js@^0.7.9:
95929624
version "0.7.17"
95939625
resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.17.tgz#e9ec5f9498b9ec910e7ae3ac626a805c4d09ecac"

0 commit comments

Comments
 (0)