mirror of
https://github.com/getpaseo/paseo.git
synced 2026-07-29 12:01:31 +00:00
Fix compact web sheet swipe crashes
This commit is contained in:
60
patches/react-native-gesture-handler+2.28.0.patch
Normal file
60
patches/react-native-gesture-handler+2.28.0.patch
Normal file
@@ -0,0 +1,60 @@
|
||||
diff --git a/node_modules/react-native-gesture-handler/lib/commonjs/web/tools/PointerEventManager.js b/node_modules/react-native-gesture-handler/lib/commonjs/web/tools/PointerEventManager.js
|
||||
index 76eb808..0debe83 100644
|
||||
--- a/node_modules/react-native-gesture-handler/lib/commonjs/web/tools/PointerEventManager.js
|
||||
+++ b/node_modules/react-native-gesture-handler/lib/commonjs/web/tools/PointerEventManager.js
|
||||
@@ -58,7 +58,14 @@ class PointerEventManager extends _EventManager.default {
|
||||
const adaptedEvent = this.mapEvent(event, _interfaces.EventTypes.UP);
|
||||
const target = event.target;
|
||||
if (!POINTER_CAPTURE_EXCLUDE_LIST.has(target.tagName)) {
|
||||
- target.releasePointerCapture(adaptedEvent.pointerId);
|
||||
+ try {
|
||||
+ if (target.hasPointerCapture(adaptedEvent.pointerId)) {
|
||||
+ target.releasePointerCapture(adaptedEvent.pointerId);
|
||||
+ }
|
||||
+ } catch {
|
||||
+ // Pointer capture is implicitly released after pointerup/pointercancel.
|
||||
+ // Some browsers can report stale capture state during gesture teardown.
|
||||
+ }
|
||||
}
|
||||
this.markAsOutOfBounds(adaptedEvent.pointerId);
|
||||
this.trackedPointers.delete(adaptedEvent.pointerId);
|
||||
diff --git a/node_modules/react-native-gesture-handler/lib/module/web/tools/PointerEventManager.js b/node_modules/react-native-gesture-handler/lib/module/web/tools/PointerEventManager.js
|
||||
index 6ce3b8f..3976f3f 100644
|
||||
--- a/node_modules/react-native-gesture-handler/lib/module/web/tools/PointerEventManager.js
|
||||
+++ b/node_modules/react-native-gesture-handler/lib/module/web/tools/PointerEventManager.js
|
||||
@@ -53,7 +53,14 @@ export default class PointerEventManager extends EventManager {
|
||||
const adaptedEvent = this.mapEvent(event, EventTypes.UP);
|
||||
const target = event.target;
|
||||
if (!POINTER_CAPTURE_EXCLUDE_LIST.has(target.tagName)) {
|
||||
- target.releasePointerCapture(adaptedEvent.pointerId);
|
||||
+ try {
|
||||
+ if (target.hasPointerCapture(adaptedEvent.pointerId)) {
|
||||
+ target.releasePointerCapture(adaptedEvent.pointerId);
|
||||
+ }
|
||||
+ } catch {
|
||||
+ // Pointer capture is implicitly released after pointerup/pointercancel.
|
||||
+ // Some browsers can report stale capture state during gesture teardown.
|
||||
+ }
|
||||
}
|
||||
this.markAsOutOfBounds(adaptedEvent.pointerId);
|
||||
this.trackedPointers.delete(adaptedEvent.pointerId);
|
||||
diff --git a/node_modules/react-native-gesture-handler/src/web/tools/PointerEventManager.ts b/node_modules/react-native-gesture-handler/src/web/tools/PointerEventManager.ts
|
||||
index 18d3627..769b0fe 100644
|
||||
--- a/node_modules/react-native-gesture-handler/src/web/tools/PointerEventManager.ts
|
||||
+++ b/node_modules/react-native-gesture-handler/src/web/tools/PointerEventManager.ts
|
||||
@@ -67,7 +67,14 @@ export default class PointerEventManager extends EventManager<HTMLElement> {
|
||||
const target = event.target as HTMLElement;
|
||||
|
||||
if (!POINTER_CAPTURE_EXCLUDE_LIST.has(target.tagName)) {
|
||||
- target.releasePointerCapture(adaptedEvent.pointerId);
|
||||
+ try {
|
||||
+ if (target.hasPointerCapture(adaptedEvent.pointerId)) {
|
||||
+ target.releasePointerCapture(adaptedEvent.pointerId);
|
||||
+ }
|
||||
+ } catch {
|
||||
+ // Pointer capture is implicitly released after pointerup/pointercancel.
|
||||
+ // Some browsers can report stale capture state during gesture teardown.
|
||||
+ }
|
||||
}
|
||||
|
||||
this.markAsOutOfBounds(adaptedEvent.pointerId);
|
||||
Reference in New Issue
Block a user