@naviedu/room-platform-react 0.0.68 → 0.0.69

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 (2) hide show
  1. package/index.esm.js +58 -9
  2. package/package.json +1 -1
package/index.esm.js CHANGED
@@ -28656,6 +28656,7 @@ function _unsupported_iterable_to_array$5(o, minLen) {
28656
28656
  }
28657
28657
  var ACTIVITY_SELECTOR = '[data-room-control-activity]';
28658
28658
  var LINE_HEIGHT_PX = 16;
28659
+ var SWIPE_THRESHOLD_PX = 12;
28659
28660
  var getAspectRatio = function(aspectRatio) {
28660
28661
  var _aspectRatio_split_map = _sliced_to_array$5(aspectRatio.split('/').map(Number), 2), width = _aspectRatio_split_map[0], height = _aspectRatio_split_map[1];
28661
28662
  return Number.isFinite(width) && Number.isFinite(height) && width > 0 && height > 0 ? width / height : null;
@@ -28683,6 +28684,7 @@ var boundedDelta = function(deltaY, deltaMode, contentHeight) {
28683
28684
  };
28684
28685
  function RoomPlatformScreenShareInteractionSurface(param) {
28685
28686
  var aspectRatio = param.aspectRatio, children = param.children, handlers = param.handlers;
28687
+ var activePointerRef = useRef(null);
28686
28688
  var getCurrentContentRect = function(target) {
28687
28689
  return getContentRect(target.getBoundingClientRect(), aspectRatio);
28688
28690
  };
@@ -28696,22 +28698,69 @@ function RoomPlatformScreenShareInteractionSurface(param) {
28696
28698
  deltaY: deltaY
28697
28699
  });
28698
28700
  };
28699
- var handleClick = function(event) {
28700
- var _handlers_onClick;
28701
- if (isActivityTarget(event.target)) return;
28701
+ var releasePointerCapture = function(target, pointerId) {
28702
+ var _target_hasPointerCapture;
28703
+ if ((_target_hasPointerCapture = target.hasPointerCapture) === null || _target_hasPointerCapture === void 0 ? void 0 : _target_hasPointerCapture.call(target, pointerId)) target.releasePointerCapture(pointerId);
28704
+ };
28705
+ var handlePointerDown = function(event) {
28706
+ var _event_currentTarget_setPointerCapture, _event_currentTarget;
28707
+ if (activePointerRef.current || !event.isPrimary || event.button !== 0 || isActivityTarget(event.target)) {
28708
+ return;
28709
+ }
28710
+ activePointerRef.current = {
28711
+ pointerId: event.pointerId,
28712
+ pointerType: event.pointerType,
28713
+ startX: event.clientX,
28714
+ startY: event.clientY
28715
+ };
28716
+ (_event_currentTarget_setPointerCapture = (_event_currentTarget = event.currentTarget).setPointerCapture) === null || _event_currentTarget_setPointerCapture === void 0 ? void 0 : _event_currentTarget_setPointerCapture.call(_event_currentTarget, event.pointerId);
28717
+ };
28718
+ var handlePointerUp = function(event) {
28719
+ var _handlers_onWheel;
28720
+ var activePointer = activePointerRef.current;
28721
+ if (!activePointer || activePointer.pointerId !== event.pointerId) return;
28722
+ activePointerRef.current = null;
28723
+ releasePointerCapture(event.currentTarget, event.pointerId);
28702
28724
  if (!Number.isFinite(event.clientX) || !Number.isFinite(event.clientY)) return;
28703
- var contentRect = getCurrentContentRect(event.currentTarget);
28704
- if (contentRect) handlers === null || handlers === void 0 ? void 0 : (_handlers_onClick = handlers.onClick) === null || _handlers_onClick === void 0 ? void 0 : _handlers_onClick.call(handlers, {
28705
- clientX: event.clientX,
28706
- clientY: event.clientY,
28707
- contentRect: contentRect
28725
+ var deltaX = event.clientX - activePointer.startX;
28726
+ var deltaY = event.clientY - activePointer.startY;
28727
+ if (!Number.isFinite(deltaX) || !Number.isFinite(deltaY)) return;
28728
+ var isTap = Math.abs(deltaX) < SWIPE_THRESHOLD_PX && Math.abs(deltaY) < SWIPE_THRESHOLD_PX;
28729
+ if (isTap) {
28730
+ var _handlers_onClick;
28731
+ var contentRect = getCurrentContentRect(event.currentTarget);
28732
+ if (contentRect) handlers === null || handlers === void 0 ? void 0 : (_handlers_onClick = handlers.onClick) === null || _handlers_onClick === void 0 ? void 0 : _handlers_onClick.call(handlers, {
28733
+ clientX: event.clientX,
28734
+ clientY: event.clientY,
28735
+ contentRect: contentRect
28736
+ });
28737
+ return;
28738
+ }
28739
+ var isVerticalTouchSwipe = activePointer.pointerType === 'touch' && Math.abs(deltaY) >= SWIPE_THRESHOLD_PX && Math.abs(deltaY) > Math.abs(deltaX);
28740
+ if (!isVerticalTouchSwipe) return;
28741
+ var contentRect1 = getCurrentContentRect(event.currentTarget);
28742
+ if (!contentRect1) return;
28743
+ var scrollDelta = boundedDelta(activePointer.startY - event.clientY, 0, contentRect1.height);
28744
+ if (scrollDelta !== null) handlers === null || handlers === void 0 ? void 0 : (_handlers_onWheel = handlers.onWheel) === null || _handlers_onWheel === void 0 ? void 0 : _handlers_onWheel.call(handlers, {
28745
+ deltaY: scrollDelta
28708
28746
  });
28709
28747
  };
28748
+ var handlePointerCancel = function(event) {
28749
+ var activePointer = activePointerRef.current;
28750
+ if (!activePointer || activePointer.pointerId !== event.pointerId) return;
28751
+ activePointerRef.current = null;
28752
+ releasePointerCapture(event.currentTarget, event.pointerId);
28753
+ };
28710
28754
  return /*#__PURE__*/ jsx("div", {
28711
28755
  "data-testid": "room-platform-screen-share-interaction-surface",
28712
28756
  className: "absolute inset-0 z-10",
28713
- onClick: handleClick,
28757
+ onPointerCancel: handlePointerCancel,
28758
+ onPointerDown: handlePointerDown,
28759
+ onPointerUp: handlePointerUp,
28714
28760
  onWheel: handleWheel,
28761
+ style: {
28762
+ touchAction: 'none'
28763
+ },
28715
28764
  children: children
28716
28765
  });
28717
28766
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@naviedu/room-platform-react",
3
- "version": "0.0.68",
3
+ "version": "0.0.69",
4
4
  "type": "module",
5
5
  "main": "./index.esm.js",
6
6
  "module": "./index.esm.js",