@onekeyfe/react-native-native-overlay 3.0.162-alpha.272 → 6.7.0-12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/android/src/main/java/com/onekey/nativeoverlay/NativeOverlayAnimation.kt +5 -10
  2. package/android/src/main/java/com/onekey/nativeoverlay/NativeOverlayEntryRootView.kt +23 -2
  3. package/android/src/main/java/com/onekey/nativeoverlay/NativeOverlayHost.kt +17 -12
  4. package/android/src/main/java/com/onekey/nativeoverlay/NativeOverlayView.kt +3 -1
  5. package/android/src/test/java/com/onekey/nativeoverlay/NativeOverlayBackTest.kt +295 -0
  6. package/android/src/test/java/com/onekey/nativeoverlay/NativeOverlayMotionTest.kt +101 -0
  7. package/docs/SPEC.md +171 -30
  8. package/ios/NativeOverlayContainerView.swift +20 -7
  9. package/ios/NativeOverlaySheetController.swift +37 -1
  10. package/lib/module/OverlayStore.js +13 -1
  11. package/lib/module/OverlayStore.js.map +1 -1
  12. package/lib/module/OverlayView.web.js +104 -25
  13. package/lib/module/OverlayView.web.js.map +1 -1
  14. package/lib/module/useOverlayController.js +11 -3
  15. package/lib/module/useOverlayController.js.map +1 -1
  16. package/lib/module/web/animateTransition.js +20 -12
  17. package/lib/module/web/animateTransition.js.map +1 -1
  18. package/lib/module/web/overlayLayers.js +16 -0
  19. package/lib/module/web/overlayLayers.js.map +1 -1
  20. package/lib/module/web/useKeyboardShift.js +1 -1
  21. package/lib/module/web/useKeyboardShift.js.map +1 -1
  22. package/lib/module/web/useSheetDrag.js +22 -2
  23. package/lib/module/web/useSheetDrag.js.map +1 -1
  24. package/lib/typescript/src/OverlayStore.d.ts +2 -0
  25. package/lib/typescript/src/OverlayStore.d.ts.map +1 -1
  26. package/lib/typescript/src/OverlayView.web.d.ts.map +1 -1
  27. package/lib/typescript/src/useOverlayController.d.ts.map +1 -1
  28. package/lib/typescript/src/web/animateTransition.d.ts +2 -2
  29. package/lib/typescript/src/web/animateTransition.d.ts.map +1 -1
  30. package/lib/typescript/src/web/overlayLayers.d.ts +1 -0
  31. package/lib/typescript/src/web/overlayLayers.d.ts.map +1 -1
  32. package/lib/typescript/src/web/useSheetDrag.d.ts.map +1 -1
  33. package/package.json +1 -1
  34. package/src/OverlayStore.ts +13 -1
  35. package/src/OverlayView.web.tsx +193 -56
  36. package/src/useOverlayController.ts +11 -4
  37. package/src/web/animateTransition.ts +30 -11
  38. package/src/web/overlayLayers.ts +20 -0
  39. package/src/web/useKeyboardShift.ts +1 -1
  40. package/src/web/useSheetDrag.ts +23 -2
@@ -99,7 +99,7 @@ export function useKeyboardShift({
99
99
  top = origin + sheet.offsetTop;
100
100
  bottom = top + sheet.offsetHeight;
101
101
  } else {
102
- const extent = layoutExtent(contentRef.current);
102
+ const extent = layoutExtent(sheet ?? contentRef.current);
103
103
  if (extent) {
104
104
  top = origin + extent.top;
105
105
  bottom = origin + extent.bottom;
@@ -129,15 +129,36 @@ export function useSheetDrag({
129
129
  );
130
130
  };
131
131
 
132
+ const onPointerCancel = (event: PointerEvent) => {
133
+ if (!tracking || event.pointerId !== pointerId) {
134
+ return;
135
+ }
136
+ tracking = false;
137
+ dragging = false;
138
+ velocity = 0;
139
+ if (sheet.hasPointerCapture?.(pointerId)) {
140
+ sheet.releasePointerCapture(pointerId);
141
+ }
142
+ pointerId = -1;
143
+ sheet.style.transform = '';
144
+ sheet.style.transition = '';
145
+ if (backdropRef.current) {
146
+ backdropRef.current.style.opacity = '1';
147
+ }
148
+ };
149
+
132
150
  sheet.addEventListener('pointerdown', onPointerDown);
133
151
  sheet.addEventListener('pointermove', onPointerMove);
134
152
  sheet.addEventListener('pointerup', onPointerUp);
135
- sheet.addEventListener('pointercancel', onPointerUp);
153
+ sheet.addEventListener('pointercancel', onPointerCancel);
136
154
  return () => {
155
+ if (sheet.hasPointerCapture?.(pointerId)) {
156
+ sheet.releasePointerCapture(pointerId);
157
+ }
137
158
  sheet.removeEventListener('pointerdown', onPointerDown);
138
159
  sheet.removeEventListener('pointermove', onPointerMove);
139
160
  sheet.removeEventListener('pointerup', onPointerUp);
140
- sheet.removeEventListener('pointercancel', onPointerUp);
161
+ sheet.removeEventListener('pointercancel', onPointerCancel);
141
162
  };
142
163
  }, [sheetRef, backdropRef, enabled]);
143
164
  }