Commit b15a63f
authored
[General] Pass
## Description
`Touchable` normalized a missing `hitSlop` into `{ top: 0, left: 0,
bottom: 0, right: 0 }`, so a button with no `hitSlop` was still
configured with an explicit — if empty — one. That forces the handler to
hit-test against a rect identical to its frame instead of keeping its
unset default, and it makes removing the prop indistinguishable from
setting it to `0`.
`hitSlop` is now passed through as `null` when unset, and every platform
treats that as "reset to the default":
- **Android** — `GestureHandler.setHitSlop` accepts `null` and restores
`DEFAULT_HIT_SLOP`; `handleHitSlopProperty` checks `config.isNull`
first. The button view manager forwards the `null` to the managed
handler instead of skipping the update entirely.
- **iOS/macOS** — an `NSNull` in the config resets `_hitSlop` to
`RNGHHitSlopEmpty`. The Fabric component view keeps skipping the key
entirely when all edges are `0`, since the generated props struct cannot
carry null (added a comment explaining why).
- **Web** — `config.hitSlop ?? undefined`, so `undefined` still means
"not part of this update" while `null` clears it.
Prop types on `GestureHandlerButton` and the web `Config` were widened
to allow `null`.
## Test plan
- Ran a `Touchable` with and without `hitSlop`, and toggling the prop
on/off at runtime, on Android, iOS and web — the touch area matches the
frame when the prop is removed.
- `yarn ts-check`, `yarn lint:js`, `yarn test`null hitSlop instead of coercing it to zero (#4356)1 parent 8958861 commit b15a63f
9 files changed
Lines changed: 33 additions & 17 deletions
File tree
- packages/react-native-gesture-handler
- android/src/main/java/com/swmansion/gesturehandler
- core
- react
- apple
- src
- components
- v3/components/Touchable
- web
- handlers
Lines changed: 10 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
197 | 197 | | |
198 | 198 | | |
199 | 199 | | |
200 | | - | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
201 | 207 | | |
202 | 208 | | |
203 | 209 | | |
| |||
989 | 995 | | |
990 | 996 | | |
991 | 997 | | |
992 | | - | |
| 998 | + | |
| 999 | + | |
| 1000 | + | |
993 | 1001 | | |
994 | 1002 | | |
995 | 1003 | | |
| |||
Lines changed: 6 additions & 8 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
137 | 137 | | |
138 | 138 | | |
139 | 139 | | |
140 | | - | |
141 | | - | |
142 | | - | |
143 | | - | |
144 | | - | |
145 | | - | |
146 | | - | |
147 | | - | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
148 | 146 | | |
149 | 147 | | |
150 | 148 | | |
| |||
Lines changed: 2 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
169 | 169 | | |
170 | 170 | | |
171 | 171 | | |
| 172 | + | |
| 173 | + | |
172 | 174 | | |
173 | 175 | | |
174 | 176 | | |
| |||
Lines changed: 4 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
273 | 273 | | |
274 | 274 | | |
275 | 275 | | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
276 | 280 | | |
277 | 281 | | |
278 | 282 | | |
| |||
Lines changed: 1 addition & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
| 36 | + | |
36 | 37 | | |
37 | 38 | | |
38 | 39 | | |
| |||
Lines changed: 1 addition & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
| 51 | + | |
51 | 52 | | |
52 | 53 | | |
53 | 54 | | |
| |||
Lines changed: 5 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
162 | 162 | | |
163 | 163 | | |
164 | 164 | | |
165 | | - | |
| 165 | + | |
166 | 166 | | |
167 | | - | |
168 | | - | |
169 | | - | |
170 | | - | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
171 | 171 | | |
172 | 172 | | |
173 | 173 | | |
| |||
Lines changed: 3 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
791 | 791 | | |
792 | 792 | | |
793 | 793 | | |
| 794 | + | |
| 795 | + | |
794 | 796 | | |
795 | | - | |
| 797 | + | |
796 | 798 | | |
797 | 799 | | |
798 | 800 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
52 | | - | |
| 52 | + | |
53 | 53 | | |
54 | 54 | | |
55 | 55 | | |
| |||
0 commit comments