Skip to content

Commit 4d88ea2

Browse files
authored
fix: don't add onChange prop to the plain children container (#272)
Closes #269
1 parent 31a890b commit 4d88ea2

File tree

3 files changed

+20
-15
lines changed

3 files changed

+20
-15
lines changed

src/InView.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ export class InView extends React.Component<
118118
threshold,
119119
root,
120120
rootMargin,
121+
onChange,
121122
...props
122123
} = this.props
123124

src/__tests__/Observer.test.js

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/* eslint-disable import/no-named-as-default-member */
22
import React from 'react'
3-
import { render } from '@testing-library/react'
3+
import { fireEvent, render } from '@testing-library/react'
44
import { observe, unobserve } from '../intersection'
55
import Observer from '../'
66
import invariant from 'invariant'
@@ -170,3 +170,15 @@ it('Should throw error when not passing ref', () => {
170170
'react-intersection-observer: No DOM node found. Make sure you forward "ref" to the root DOM element you want to observe.',
171171
)
172172
})
173+
174+
it('plain children should not catch bubbling onChange event', () => {
175+
const onChange = jest.fn()
176+
const { getByRole } = render(
177+
<Observer onChange={onChange}>
178+
<input name="field" />
179+
</Observer>,
180+
)
181+
const input = getByRole('textbox')
182+
fireEvent.change(input, { target: { value: 'changed value' } })
183+
expect(onChange).not.toHaveBeenCalled()
184+
})

yarn.lock

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2488,17 +2488,17 @@ babel-code-frame@^6.22.0:
24882488
esutils "^2.0.2"
24892489
js-tokens "^3.0.2"
24902490

2491-
2492-
version "10.0.2"
2493-
resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.2.tgz#182d5ac204579ff0881684b040560fdcc1558456"
2494-
integrity sha512-UdsurWPtgiPgpJ06ryUnuaSXC2s0WoSZnQmEpbAH65XZSdwowgN5MvyP7e88nW07FYXv72erVtpBkxyDVKhH1Q==
2491+
babel-eslint@^10.0.3:
2492+
version "10.0.3"
2493+
resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.3.tgz#81a2c669be0f205e19462fed2482d33e4687a88a"
2494+
integrity sha512-z3U7eMY6r/3f3/JB9mTsLjyxrv0Yb1zb8PCWCLpguxfCzBIZUwy23R1t/XKewP+8mEN2Ck8Dtr4q20z6ce6SoA==
24952495
dependencies:
24962496
"@babel/code-frame" "^7.0.0"
24972497
"@babel/parser" "^7.0.0"
24982498
"@babel/traverse" "^7.0.0"
24992499
"@babel/types" "^7.0.0"
2500-
eslint-scope "3.7.1"
25012500
eslint-visitor-keys "^1.0.0"
2501+
resolve "^1.12.0"
25022502

25032503
babel-helper-evaluate-path@^0.5.0:
25042504
version "0.5.0"
@@ -4460,14 +4460,6 @@ eslint-plugin-react@^7.12.4:
44604460
prop-types "^15.7.2"
44614461
resolve "^1.10.1"
44624462

4463-
4464-
version "3.7.1"
4465-
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8"
4466-
integrity sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=
4467-
dependencies:
4468-
esrecurse "^4.1.0"
4469-
estraverse "^4.1.1"
4470-
44714463
eslint-scope@^4.0.0, eslint-scope@^4.0.3:
44724464
version "4.0.3"
44734465
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848"
@@ -9288,7 +9280,7 @@ [email protected]:
92889280
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
92899281
integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=
92909282

9291-
resolve@^1.1.6, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.0, resolve@^1.11.1, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1:
9283+
resolve@^1.1.6, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.0, resolve@^1.11.1, resolve@^1.12.0, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1:
92929284
version "1.12.0"
92939285
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6"
92949286
integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==

0 commit comments

Comments
 (0)