Skip to content

Commit 159324c

Browse files
committed
fixes incorrect scroll direction when direction difference is zero, decrements react peerDependency to v16.8.0
1 parent 35323f4 commit 159324c

File tree

5 files changed

+31
-10
lines changed

5 files changed

+31
-10
lines changed

.eslintrc.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,5 +39,6 @@ module.exports = {
3939
"no-throw-literal": 0,
4040
"react/jsx-max-props-per-line": [1, { "maximum": 1 }],
4141
"import/no-extraneous-dependencies": ["error", {"devDependencies": true}],
42+
"no-nested-ternary": 0,
4243
},
4344
};

demo/ScrollInfo.demo.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,10 @@ const ScrollInfoDemo = (props) => {
4646
{`xPercentage: ${xPercentage},`}
4747
<br />
4848
&emsp;
49-
{`yPercentage: ${yPercentage}`}
49+
{`yPercentage: ${yPercentage},`}
5050
<br />
5151
&emsp;
52-
{`totalPercentage: ${totalPercentage}`}
52+
{`totalPercentage: ${totalPercentage},`}
5353
<br />
5454
&emsp;
5555
{`eventsFired: ${eventsFired},`}

dist/build.bundle.js

Lines changed: 14 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@trbl/react-scroll-info",
3-
"version": "0.0.13",
3+
"version": "0.0.14",
44
"main": "dist/build.bundle.js",
55
"repository": "git@github.com:trouble/react-scroll-info.git",
66
"description": "A roll, as of parchment or papyrus, used especially in the writing of a document.",
@@ -20,7 +20,7 @@
2020
"test": "echo \"No test specified\""
2121
},
2222
"peerDependencies": {
23-
"react": "^16.11.0"
23+
"react": "^16.8.0"
2424
},
2525
"dependencies": {
2626
"prop-types": "^15.7.2",

src/ScrollInfoProvider/index.js

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,10 @@ class ScrollInfoProvider extends Component {
3333

3434
updateScrollInfo = () => {
3535
const {
36-
x: lastScrollX,
37-
y: lastScrollY,
36+
x: prevScrollX,
37+
y: prevScrollY,
38+
xDirection: prevXDirection,
39+
yDirection: prevYDirection,
3840
eventsFired,
3941
animationsFired,
4042
} = this.state;
@@ -46,12 +48,16 @@ class ScrollInfoProvider extends Component {
4648
const currentScrollX = animationsFired > 0 ? window.pageXOffset : 0;
4749
const currentScrollY = animationsFired > 0 ? window.pageYOffset : 0;
4850

49-
const xDifference = currentScrollX - lastScrollX;
50-
const yDifference = currentScrollY - lastScrollY;
51+
const xDifference = currentScrollX - prevScrollX;
52+
const yDifference = currentScrollY - prevScrollY;
53+
5154
const xPercentage = Number((currentScrollX / (document.body.scrollWidth - window.innerWidth)).toFixed(3));
5255
const yPercentage = Number((currentScrollY / (document.body.scrollHeight - window.innerHeight)).toFixed(3));
5356
const totalPercentage = Number(((xPercentage + yPercentage) / 2).toFixed(3));
5457

58+
const xDirection = xDifference > 0 ? 'right' : xDifference < 0 ? 'left' : prevXDirection;
59+
const yDirection = yDifference > 0 ? 'down' : yDifference < 0 ? 'up' : prevYDirection;
60+
5561
const scrollHasChanged = xDifference !== 0 || yDifference !== 0;
5662

5763
this.setState({
@@ -60,8 +66,8 @@ class ScrollInfoProvider extends Component {
6066
y: currentScrollY,
6167
xDifference,
6268
yDifference,
63-
xDirection: xDifference > 0 ? 'right' : 'left',
64-
yDirection: yDifference > 0 ? 'down' : 'up',
69+
xDirection,
70+
yDirection,
6571
xPercentage,
6672
yPercentage,
6773
totalPercentage,

0 commit comments

Comments
 (0)