Skip to content

Commit 03c6a93

Browse files
committed
[fix] Correctly propagate pointer-events: auto to children when set to box-none
Corrects `pointer-events: box-none` behavior to match what's described at https://reactnative.dev/docs/view#pointerevents Fixes #2606
1 parent 922c134 commit 03c6a93

File tree

3 files changed

+27
-3
lines changed

3 files changed

+27
-3
lines changed

packages/react-native-web/src/exports/AppRegistry/__tests__/__snapshots__/index-test.js.snap

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ exports[`AppRegistry runApplication styles roots in different documents 1`] = `
1616
".r-bottom-1p0dtai {bottom: 0px;}",
1717
".r-left-1d2f490 {left: 0px;}",
1818
".r-pointerEvents-105ug2t {pointer-events: auto !important;}",
19-
".r-pointerEvents-12vffkv>* {pointer-events: auto;}",
19+
".r-pointerEvents-12vffkv * {pointer-events: auto;}",
2020
".r-pointerEvents-12vffkv {pointer-events: none !important;}",
2121
".r-pointerEvents-633pao {pointer-events: none !important;}",
2222
".r-pointerEvents-ah5dr5>* {pointer-events: none;}",
@@ -43,7 +43,7 @@ exports[`AppRegistry runApplication styles roots in different documents 2`] = `
4343
".r-bottom-1p0dtai {bottom: 0px;}",
4444
".r-left-1d2f490 {left: 0px;}",
4545
".r-pointerEvents-105ug2t {pointer-events: auto !important;}",
46-
".r-pointerEvents-12vffkv>* {pointer-events: auto;}",
46+
".r-pointerEvents-12vffkv * {pointer-events: auto;}",
4747
".r-pointerEvents-12vffkv {pointer-events: none !important;}",
4848
".r-pointerEvents-633pao {pointer-events: none !important;}",
4949
".r-pointerEvents-ah5dr5>* {pointer-events: none;}",

packages/react-native-web/src/exports/StyleSheet/__tests__/compiler-test.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,30 @@ describe('StyleSheet/compile', () => {
176176
]
177177
`);
178178
});
179+
180+
test('when parent is pointer-events=box-none, pointer-events=auto applied to children', () => {
181+
const result = atomic({
182+
pointerEvents: 'box-none'
183+
});
184+
185+
expect(result).toMatchInlineSnapshot(`
186+
[
187+
{
188+
"$$css": true,
189+
"pointerEvents": "r-pointerEvents-12vffkv",
190+
},
191+
[
192+
[
193+
[
194+
".r-pointerEvents-12vffkv * {pointer-events:auto;}",
195+
".r-pointerEvents-12vffkv{pointer-events:none!important;}",
196+
],
197+
3,
198+
],
199+
],
200+
]
201+
`);
202+
});
179203
});
180204

181205
describe('classic', () => {

packages/react-native-web/src/exports/StyleSheet/compiler/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -391,7 +391,7 @@ function createAtomicRules(identifier: string, property, value): Rules {
391391
finalValue = 'none!important';
392392
if (value === 'box-none') {
393393
const block = createDeclarationBlock({ pointerEvents: 'auto' });
394-
rules.push(`${selector}>*${block}`);
394+
rules.push(`${selector} * ${block}`);
395395
}
396396
}
397397
const block = createDeclarationBlock({ pointerEvents: finalValue });

0 commit comments

Comments
 (0)