@getuserfeedback/react-native 1.3.17 → 1.3.23

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.
@@ -1,4 +1,4 @@
1
- import { createElement, useCallback, useRef, } from "react";
1
+ import { createElement, useCallback, useMemo, useRef, } from "react";
2
2
  const HIDDEN_WIDGET_HOST_STYLE = {
3
3
  bottom: 0,
4
4
  left: 0,
@@ -40,6 +40,7 @@ const WIDGET_SHEET_STYLE = {
40
40
  };
41
41
  const WIDGET_SHEET_DRAG_HANDLE_TOUCH_STYLE = {
42
42
  alignItems: "center",
43
+ elevation: 19,
43
44
  height: 32,
44
45
  justifyContent: "center",
45
46
  left: 0,
@@ -88,10 +89,21 @@ const VISIBLE_WIDGET_HOST_LAYOUT_STYLE_KEYS = new Set([
88
89
  "width",
89
90
  ]);
90
91
  const LOADER_FLOATING_CONTAINER_MIN_HEIGHT = 120;
91
- const WIDGET_SHEET_SWIPE_DISMISS_DISTANCE = 64;
92
- function toResponderPageY(event) {
92
+ const WIDGET_SHEET_SWIPE_DISMISS_DISTANCE = 24;
93
+ function resolveNativePanResponder() {
93
94
  var _a;
94
- const value = (_a = event === null || event === void 0 ? void 0 : event.nativeEvent) === null || _a === void 0 ? void 0 : _a.pageY;
95
+ try {
96
+ const reactNativeModule = require("react-native");
97
+ return (_a = reactNativeModule.PanResponder) !== null && _a !== void 0 ? _a : null;
98
+ }
99
+ catch (_b) {
100
+ return null;
101
+ }
102
+ }
103
+ function toResponderPageY(event) {
104
+ var _a, _b, _c;
105
+ const nativeEvent = event === null || event === void 0 ? void 0 : event.nativeEvent;
106
+ const value = (_a = nativeEvent === null || nativeEvent === void 0 ? void 0 : nativeEvent.pageY) !== null && _a !== void 0 ? _a : (_c = (_b = nativeEvent === null || nativeEvent === void 0 ? void 0 : nativeEvent.changedTouches) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.pageY;
95
107
  return typeof value === "number" && Number.isFinite(value)
96
108
  ? value
97
109
  : undefined;
@@ -160,6 +172,41 @@ export function ProviderWidgetHostOverlay({ children, isVisible, nativeView, onR
160
172
  }
161
173
  onRequestDismiss();
162
174
  }, [onRequestDismiss]);
175
+ const dragHandleGestureProps = useMemo(() => {
176
+ const panResponder = resolveNativePanResponder();
177
+ if (panResponder) {
178
+ try {
179
+ return panResponder.create({
180
+ onMoveShouldSetPanResponder: (_event, gestureState) => typeof gestureState.dy === "number" &&
181
+ gestureState.dy >=
182
+ Math.min(12, WIDGET_SHEET_SWIPE_DISMISS_DISTANCE),
183
+ onPanResponderGrant: handleDragGrant,
184
+ onPanResponderRelease: (_event, gestureState) => {
185
+ if (!gestureState) {
186
+ handleDragRelease(_event);
187
+ return;
188
+ }
189
+ if (typeof gestureState.dy !== "number" ||
190
+ gestureState.dy < WIDGET_SHEET_SWIPE_DISMISS_DISTANCE) {
191
+ return;
192
+ }
193
+ onRequestDismiss();
194
+ },
195
+ onStartShouldSetPanResponder: () => true,
196
+ }).panHandlers;
197
+ }
198
+ catch (_a) {
199
+ // Fall back to the plain responder/touch path below.
200
+ }
201
+ }
202
+ return {
203
+ onResponderGrant: handleDragGrant,
204
+ onResponderRelease: handleDragRelease,
205
+ onStartShouldSetResponder: () => true,
206
+ onTouchEnd: handleDragRelease,
207
+ onTouchStart: handleDragGrant,
208
+ };
209
+ }, [handleDragGrant, handleDragRelease, onRequestDismiss]);
163
210
  const widgetSheetStyle = sheetHostViewport
164
211
  ? Object.assign(Object.assign({}, WIDGET_SHEET_STYLE), { height: sheetHostViewport.height }) : HIDDEN_WIDGET_HOST_STYLE;
165
212
  const isSheetVisible = isVisible && sheetHostViewport !== undefined;
@@ -181,13 +228,7 @@ export function ProviderWidgetHostOverlay({ children, isVisible, nativeView, onR
181
228
  style: isSheetVisible ? widgetSheetStyle : HIDDEN_WIDGET_HOST_STYLE,
182
229
  testID: "gx-widget-host-sheet",
183
230
  }, children, isSheetVisible
184
- ? createElement(nativeView, {
185
- onResponderGrant: handleDragGrant,
186
- onResponderRelease: handleDragRelease,
187
- onStartShouldSetResponder: () => true,
188
- style: WIDGET_SHEET_DRAG_HANDLE_TOUCH_STYLE,
189
- testID: "gx-widget-host-drag-handle",
190
- }, createElement(nativeView, {
231
+ ? createElement(nativeView, Object.assign(Object.assign({}, dragHandleGestureProps), { style: WIDGET_SHEET_DRAG_HANDLE_TOUCH_STYLE, testID: "gx-widget-host-drag-handle" }), createElement(nativeView, {
191
232
  style: WIDGET_SHEET_DRAG_HANDLE_INDICATOR_STYLE,
192
233
  testID: "gx-widget-host-drag-handle-indicator",
193
234
  }))
package/dist/version.js CHANGED
@@ -3,4 +3,4 @@ const reactNativeSdkVersion = typeof __GX_REACT_NATIVE_SDK_VERSION__ === "string
3
3
  : "";
4
4
  // Build scripts patch this fallback to the package version for published artifacts.
5
5
  // Source-linked workspace usage keeps the local fallback.
6
- export const REACT_NATIVE_SDK_VERSION = reactNativeSdkVersion.length > 0 ? reactNativeSdkVersion : "1.3.17";
6
+ export const REACT_NATIVE_SDK_VERSION = reactNativeSdkVersion.length > 0 ? reactNativeSdkVersion : "1.3.23";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getuserfeedback/react-native",
3
- "version": "1.3.17",
3
+ "version": "1.3.23",
4
4
  "description": "getuserfeedback React Native SDK",
5
5
  "keywords": [
6
6
  "getuserfeedback",
@@ -44,8 +44,8 @@
44
44
  "lint": "ultracite check ."
45
45
  },
46
46
  "dependencies": {
47
- "@getuserfeedback/protocol": "^2.2.0",
48
- "@getuserfeedback/sdk": "^0.8.0",
47
+ "@getuserfeedback/protocol": "^3.0.3",
48
+ "@getuserfeedback/sdk": "^0.8.5",
49
49
  "robot3": "^1.2.0"
50
50
  },
51
51
  "peerDependencies": {
@@ -62,7 +62,6 @@
62
62
  }
63
63
  },
64
64
  "devDependencies": {
65
- "rimraf": "^6.0.0",
66
65
  "typescript": "^5.8.3"
67
66
  }
68
67
  }