react-native-grab 1.1.0 → 1.1.1

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 (66) hide show
  1. package/dist/cjs/react-native/__tests__/grab-context-description.test.js +81 -0
  2. package/dist/cjs/react-native/__tests__/grab-context-description.test.js.map +1 -1
  3. package/dist/cjs/react-native/containers.js +107 -25
  4. package/dist/cjs/react-native/containers.js.map +1 -1
  5. package/dist/cjs/react-native/context-menu.js +15 -23
  6. package/dist/cjs/react-native/context-menu.js.map +1 -1
  7. package/dist/cjs/react-native/description.js +31 -4
  8. package/dist/cjs/react-native/description.js.map +1 -1
  9. package/dist/cjs/react-native/grab-colors.js +7 -0
  10. package/dist/cjs/react-native/grab-colors.js.map +1 -0
  11. package/dist/cjs/react-native/grab-control-bar.js +9 -5
  12. package/dist/cjs/react-native/grab-control-bar.js.map +1 -1
  13. package/dist/cjs/react-native/grab-controller.js +105 -16
  14. package/dist/cjs/react-native/grab-controller.js.map +1 -1
  15. package/dist/cjs/react-native/grab-overlay.js +139 -170
  16. package/dist/cjs/react-native/grab-overlay.js.map +1 -1
  17. package/dist/cjs/react-native/grab-root-controls.js +89 -0
  18. package/dist/cjs/react-native/grab-root-controls.js.map +1 -0
  19. package/dist/cjs/react-native/grab-root.js +8 -2
  20. package/dist/cjs/react-native/grab-root.js.map +1 -1
  21. package/dist/cjs/react-native/grab-screen.js +18 -3
  22. package/dist/cjs/react-native/grab-screen.js.map +1 -1
  23. package/dist/cjs/react-native/index.js.map +1 -1
  24. package/dist/esm/react-native/__tests__/grab-context-description.test.js +83 -2
  25. package/dist/esm/react-native/__tests__/grab-context-description.test.js.map +1 -1
  26. package/dist/esm/react-native/containers.js +95 -20
  27. package/dist/esm/react-native/containers.js.map +1 -1
  28. package/dist/esm/react-native/context-menu.js +15 -23
  29. package/dist/esm/react-native/context-menu.js.map +1 -1
  30. package/dist/esm/react-native/description.js +28 -3
  31. package/dist/esm/react-native/description.js.map +1 -1
  32. package/dist/esm/react-native/grab-colors.js +4 -0
  33. package/dist/esm/react-native/grab-colors.js.map +1 -0
  34. package/dist/esm/react-native/grab-control-bar.js +9 -5
  35. package/dist/esm/react-native/grab-control-bar.js.map +1 -1
  36. package/dist/esm/react-native/grab-controller.js +97 -13
  37. package/dist/esm/react-native/grab-controller.js.map +1 -1
  38. package/dist/esm/react-native/grab-overlay.js +141 -172
  39. package/dist/esm/react-native/grab-overlay.js.map +1 -1
  40. package/dist/esm/react-native/grab-root-controls.js +85 -0
  41. package/dist/esm/react-native/grab-root-controls.js.map +1 -0
  42. package/dist/esm/react-native/grab-root.js +11 -5
  43. package/dist/esm/react-native/grab-root.js.map +1 -1
  44. package/dist/esm/react-native/grab-screen.js +21 -6
  45. package/dist/esm/react-native/grab-screen.js.map +1 -1
  46. package/dist/esm/react-native/index.js.map +1 -1
  47. package/dist/types/react-native/containers.d.ts +23 -4
  48. package/dist/types/react-native/containers.d.ts.map +1 -1
  49. package/dist/types/react-native/context-menu.d.ts +6 -1
  50. package/dist/types/react-native/context-menu.d.ts.map +1 -1
  51. package/dist/types/react-native/description.d.ts +5 -0
  52. package/dist/types/react-native/description.d.ts.map +1 -1
  53. package/dist/types/react-native/grab-colors.d.ts +4 -0
  54. package/dist/types/react-native/grab-colors.d.ts.map +1 -0
  55. package/dist/types/react-native/grab-control-bar.d.ts.map +1 -1
  56. package/dist/types/react-native/grab-controller.d.ts +17 -4
  57. package/dist/types/react-native/grab-controller.d.ts.map +1 -1
  58. package/dist/types/react-native/grab-overlay.d.ts +6 -1
  59. package/dist/types/react-native/grab-overlay.d.ts.map +1 -1
  60. package/dist/types/react-native/grab-root-controls.d.ts +2 -0
  61. package/dist/types/react-native/grab-root-controls.d.ts.map +1 -0
  62. package/dist/types/react-native/grab-root.d.ts.map +1 -1
  63. package/dist/types/react-native/grab-screen.d.ts +4 -2
  64. package/dist/types/react-native/grab-screen.d.ts.map +1 -1
  65. package/dist/types/react-native/index.d.ts.map +1 -1
  66. package/package.json +1 -1
@@ -12,6 +12,20 @@ const PRIORITY_ATTRS = [
12
12
  "accessibilityHint",
13
13
  "accessibilityValue",
14
14
  ];
15
+ /** Owner names treated as host-like when resolving `Text (in Owner)` for the grab menu. */
16
+ export const GRAB_HOST_LIKE_COMPONENT_NAMES = ["View", "Text"];
17
+ const HOST_LIKE_NAME_SET = new Set(GRAB_HOST_LIKE_COMPONENT_NAMES);
18
+ export const isHostLikeComponentName = (name) => HOST_LIKE_NAME_SET.has(name.trim());
19
+ const firstHostLikeRenderedByName = (renderedBy) => {
20
+ const frame = renderedBy.find((f) => isHostLikeComponentName(f.name));
21
+ const trimmed = frame?.name?.trim();
22
+ return trimmed && trimmed.length > 0 ? trimmed : null;
23
+ };
24
+ const firstNonHostRenderedByName = (renderedBy) => {
25
+ const frame = renderedBy.find((f) => !isHostLikeComponentName(f.name));
26
+ const trimmed = frame?.name?.trim();
27
+ return trimmed && trimmed.length > 0 ? trimmed : null;
28
+ };
15
29
  const truncate = (value, maxLength) => {
16
30
  if (value.length <= maxLength)
17
31
  return value;
@@ -106,9 +120,9 @@ const extractPriorityAttrs = (props) => {
106
120
  return pairs.length > 0 ? ` ${pairs.join(" ")}` : "";
107
121
  };
108
122
  const getPreviewComponentName = (node, renderedBy) => {
109
- const firstRenderedBy = renderedBy[0]?.name?.trim();
110
- if (firstRenderedBy)
111
- return firstRenderedBy;
123
+ const fromRenderedBy = firstNonHostRenderedByName(renderedBy);
124
+ if (fromRenderedBy)
125
+ return fromRenderedBy;
112
126
  const hostFiber = getHostFiber(node);
113
127
  return getHostComponentName(hostFiber);
114
128
  };
@@ -166,6 +180,17 @@ const buildContextBlock = (contextValue) => {
166
180
  }
167
181
  return `\n\nContext:\n${JSON.stringify(contextValue, null, 2)}`;
168
182
  };
183
+ export const getGrabSelectionTitle = (node, renderedBy) => {
184
+ const fromFiber = getHostComponentName(getHostFiber(node));
185
+ const rawHostLabel = firstHostLikeRenderedByName(renderedBy) ?? (fromFiber !== "(unknown)" ? fromFiber : null);
186
+ const hostUnknown = rawHostLabel == null;
187
+ const hostLabel = hostUnknown ? "Selected element" : rawHostLabel;
188
+ const ownerName = firstNonHostRenderedByName(renderedBy);
189
+ if (ownerName && ownerName !== hostLabel) {
190
+ return `${hostLabel} (in ${ownerName})`;
191
+ }
192
+ return hostLabel;
193
+ };
169
194
  export const getDescription = async (node) => {
170
195
  let renderedBy = await getRenderedBy(node);
171
196
  const preview = buildElementPreview(node, renderedBy);
@@ -1 +1 @@
1
- {"version":3,"file":"description.js","sourceRoot":"","sources":["../../../src/react-native/description.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"description.js","sourceRoot":"","sources":["../../../src/react-native/description.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export const GRAB_PRIMARY = "#8232FF";
2
+ export const GRAB_HIGHLIGHT_FILL = "rgba(130, 50, 255, 0.2)";
3
+ export const GRAB_BADGE_BACKGROUND = "rgba(130, 50, 255, 0.92)";
4
+ //# sourceMappingURL=grab-colors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grab-colors.js","sourceRoot":"","sources":["../../../src/react-native/grab-colors.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,CAAC;AACtC,MAAM,CAAC,MAAM,mBAAmB,GAAG,yBAAyB,CAAC;AAC7D,MAAM,CAAC,MAAM,qBAAqB,GAAG,0BAA0B,CAAC"}
@@ -47,23 +47,27 @@ export const GrabControlBar = ({ dragHandlePanHandlers, isSessionEnabled, isVisi
47
47
  if (!isRendered) {
48
48
  return null;
49
49
  }
50
- return (_jsx(Animated.View, { pointerEvents: isVisible ? "auto" : "none", style: containerStyle, children: _jsx(Animated.View, { style: containerAnimatedStyle, children: _jsxs(Animated.View, { style: [styles.container, style], children: [_jsx(View, { accessibilityHint: "Drag to reposition the React Native Grab controls.", accessibilityLabel: "Move controls", accessibilityRole: "adjustable", style: styles.slot, ...dragHandlePanHandlers, children: _jsx(Image, { source: { uri: DRAG_ICON_IMAGE_URL }, style: styles.dragIcon }) }), _jsx(View, { style: styles.divider }), _jsx(Pressable, { accessibilityHint: "Starts selecting an element to copy its description.", accessibilityLabel: "Select element", accessibilityRole: "button", hitSlop: 8, onPress: onPressSelect, style: ({ pressed }) => [styles.slot, pressed && styles.pressedButton], children: _jsx(Image, { source: { uri: INSPECT_ICON_IMAGE_URL }, style: [styles.inspectIcon, isSessionEnabled && styles.inspectIconActive] }) }), _jsx(View, { style: styles.divider }), _jsx(Pressable, { accessibilityHint: "Hides the React Native Grab controls.", accessibilityLabel: "Hide controls", accessibilityRole: "button", hitSlop: 8, onPress: onPressHide, style: ({ pressed }) => [styles.slot, pressed && styles.pressedButton], children: _jsx(Image, { source: { uri: HIDE_ICON_IMAGE_URL }, style: styles.arrowIcon }) })] }) }) }));
50
+ return (_jsx(Animated.View, { pointerEvents: isVisible ? "auto" : "none", style: containerStyle, children: _jsx(Animated.View, { style: containerAnimatedStyle, children: _jsx(Animated.View, { style: [styles.container, style], children: _jsxs(View, { style: styles.content, children: [_jsx(View, { accessibilityHint: "Drag to reposition the React Native Grab controls.", accessibilityLabel: "Move controls", accessibilityRole: "adjustable", style: styles.slot, ...dragHandlePanHandlers, children: _jsx(Image, { source: { uri: DRAG_ICON_IMAGE_URL }, style: styles.dragIcon }) }), _jsx(View, { style: styles.divider }), _jsx(Pressable, { accessibilityHint: "Starts selecting an element to copy its description.", accessibilityLabel: "Select element", accessibilityRole: "button", hitSlop: 8, onPress: onPressSelect, style: ({ pressed }) => [styles.slot, pressed && styles.pressedButton], children: _jsx(Image, { source: { uri: INSPECT_ICON_IMAGE_URL }, style: [styles.inspectIcon, isSessionEnabled && styles.inspectIconActive] }) }), _jsx(View, { style: styles.divider }), _jsx(Pressable, { accessibilityHint: "Hides the React Native Grab controls.", accessibilityLabel: "Hide controls", accessibilityRole: "button", hitSlop: 8, onPress: onPressHide, style: ({ pressed }) => [styles.slot, pressed && styles.pressedButton], children: _jsx(Image, { source: { uri: HIDE_ICON_IMAGE_URL }, style: styles.arrowIcon }) })] }) }) }) }));
51
51
  };
52
52
  const styles = StyleSheet.create({
53
53
  container: {
54
54
  height: BAR_HEIGHT,
55
55
  width: BAR_WIDTH,
56
56
  borderRadius: BAR_HEIGHT / 2,
57
- backgroundColor: "#FFFFFF",
58
- flexDirection: "row",
59
- alignItems: "center",
60
- overflow: "hidden",
61
57
  shadowColor: "#000000",
62
58
  shadowOffset: { width: 0, height: 6 },
63
59
  shadowOpacity: 0.18,
64
60
  shadowRadius: 16,
65
61
  elevation: 8,
66
62
  },
63
+ content: {
64
+ flex: 1,
65
+ borderRadius: BAR_HEIGHT / 2,
66
+ backgroundColor: "#FFFFFF",
67
+ flexDirection: "row",
68
+ alignItems: "center",
69
+ overflow: "hidden",
70
+ },
67
71
  slot: {
68
72
  width: SLOT_WIDTH,
69
73
  height: BAR_HEIGHT,
@@ -1 +1 @@
1
- {"version":3,"file":"grab-control-bar.js","sourceRoot":"","sources":["../../../src/react-native/grab-control-bar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grab-control-bar.js","sourceRoot":"","sources":["../../../src/react-native/grab-control-bar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC7D,OAAO,EACL,QAAQ,EACR,MAAM,EAEN,KAAK,EACL,SAAS,EACT,UAAU,EACV,IAAI,GAGL,MAAM,cAAc,CAAC;AAEtB,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB,MAAM,SAAS,GAAG,GAAG,CAAC;AACtB,MAAM,UAAU,GAAG,EAAE,CAAC;AAEtB,iCAAiC;AACjC,MAAM,mBAAmB,GACvB,wWAAwW,CAAC;AAC3W,MAAM,mBAAmB,GACvB,ohBAAohB,CAAC;AACvhB,MAAM,sBAAsB,GAC1B,whBAAwhB,CAAC;AAa3hB,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC7B,qBAAqB,EACrB,gBAAgB,EAChB,SAAS,EACT,QAAQ,EACR,WAAW,EACX,aAAa,EACb,cAAc,EACd,KAAK,GACe,EAAE,EAAE;IACxB,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IACxD,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAEjF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,EAAE,CAAC;YACd,aAAa,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;QAED,QAAQ,CAAC,MAAM,CAAC,kBAAkB,EAAE;YAClC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1B,QAAQ,EAAE,GAAG;YACb,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;YAChC,eAAe,EAAE,IAAI;SACtB,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;YACxB,IAAI,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC3B,aAAa,CAAC,KAAK,CAAC,CAAC;gBACrB,QAAQ,EAAE,EAAE,CAAC;YACf,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAE9C,MAAM,sBAAsB,GAAG,OAAO,CACpC,GAAG,EAAE,CAAC,CAAC;QACL,OAAO,EAAE,kBAAkB;QAC3B,SAAS,EAAE;YACT;gBACE,UAAU,EAAE,kBAAkB,CAAC,WAAW,CAAC;oBACzC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;oBAClB,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;iBACtB,CAAC;aACH;YACD;gBACE,KAAK,EAAE,kBAAkB,CAAC,WAAW,CAAC;oBACpC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;oBAClB,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;iBACvB,CAAC;aACH;SACF;KACF,CAAC,EACF,CAAC,kBAAkB,CAAC,CACrB,CAAC;IAEF,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,KAAC,QAAQ,CAAC,IAAI,IAAC,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,cAAc,YAC9E,KAAC,QAAQ,CAAC,IAAI,IAAC,KAAK,EAAE,sBAAsB,YAC1C,KAAC,QAAQ,CAAC,IAAI,IAAC,KAAK,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,YAC7C,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,aACzB,KAAC,IAAI,IACH,iBAAiB,EAAC,oDAAoD,EACtE,kBAAkB,EAAC,eAAe,EAClC,iBAAiB,EAAC,YAAY,EAC9B,KAAK,EAAE,MAAM,CAAC,IAAI,KACd,qBAAqB,YAEzB,KAAC,KAAK,IAAC,MAAM,EAAE,EAAE,GAAG,EAAE,mBAAmB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,GAAI,GAClE,EAEP,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,GAAI,EAE/B,KAAC,SAAS,IACR,iBAAiB,EAAC,sDAAsD,EACxE,kBAAkB,EAAC,gBAAgB,EACnC,iBAAiB,EAAC,QAAQ,EAC1B,OAAO,EAAE,CAAC,EACV,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,IAAI,MAAM,CAAC,aAAa,CAAC,YAEtE,KAAC,KAAK,IACJ,MAAM,EAAE,EAAE,GAAG,EAAE,sBAAsB,EAAE,EACvC,KAAK,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,gBAAgB,IAAI,MAAM,CAAC,iBAAiB,CAAC,GACzE,GACQ,EAEZ,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,GAAI,EAE/B,KAAC,SAAS,IACR,iBAAiB,EAAC,uCAAuC,EACzD,kBAAkB,EAAC,eAAe,EAClC,iBAAiB,EAAC,QAAQ,EAC1B,OAAO,EAAE,CAAC,EACV,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,IAAI,MAAM,CAAC,aAAa,CAAC,YAEtE,KAAC,KAAK,IAAC,MAAM,EAAE,EAAE,GAAG,EAAE,mBAAmB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,GAAI,GAC9D,IACP,GACO,GACF,GACF,CACjB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,SAAS,EAAE;QACT,MAAM,EAAE,UAAU;QAClB,KAAK,EAAE,SAAS;QAChB,YAAY,EAAE,UAAU,GAAG,CAAC;QAC5B,WAAW,EAAE,SAAS;QACtB,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;QACrC,aAAa,EAAE,IAAI;QACnB,YAAY,EAAE,EAAE;QAChB,SAAS,EAAE,CAAC;KACb;IACD,OAAO,EAAE;QACP,IAAI,EAAE,CAAC;QACP,YAAY,EAAE,UAAU,GAAG,CAAC;QAC5B,eAAe,EAAE,SAAS;QAC1B,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,QAAQ;QACpB,QAAQ,EAAE,QAAQ;KACnB;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,QAAQ;KACzB;IACD,OAAO,EAAE;QACP,KAAK,EAAE,UAAU,CAAC,aAAa;QAC/B,MAAM,EAAE,EAAE;QACV,eAAe,EAAE,wBAAwB;KAC1C;IACD,aAAa,EAAE;QACb,eAAe,EAAE,wBAAwB;KAC1C;IACD,QAAQ,EAAE;QACR,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;KACX;IACD,WAAW,EAAE;QACX,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;KACX;IACD,iBAAiB,EAAE;QACjB,OAAO,EAAE,IAAI;KACd;IACD,SAAS,EAAE;QACT,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;KACX;CACF,CAAC,CAAC"}
@@ -1,23 +1,107 @@
1
- let enableGrabbingHandler = null;
2
- let toggleGrabMenuHandler = null;
3
- export const setEnableGrabbingHandler = (handler) => {
4
- enableGrabbingHandler = handler;
1
+ import { useSyncExternalStore } from "react";
2
+ import { getResolvedGrabSelectionOwnerId } from "./containers";
3
+ const localControllers = new Map();
4
+ const listeners = new Set();
5
+ let state = {
6
+ isMenuVisible: false,
7
+ selectedOwnerId: null,
8
+ selectionSessionOwnerId: null,
5
9
  };
6
- export const setToggleGrabMenuHandler = (handler) => {
7
- toggleGrabMenuHandler = handler;
10
+ const notify = () => {
11
+ for (const listener of listeners) {
12
+ listener();
13
+ }
14
+ };
15
+ const subscribe = (listener) => {
16
+ listeners.add(listener);
17
+ return () => {
18
+ listeners.delete(listener);
19
+ };
20
+ };
21
+ const setState = (updater) => {
22
+ state = typeof updater === "function" ? updater(state) : updater;
23
+ notify();
24
+ };
25
+ const stopAllSelections = () => {
26
+ for (const controller of localControllers.values()) {
27
+ controller.stopSelection();
28
+ controller.closeSelectionMenu();
29
+ }
30
+ };
31
+ export const registerLocalGrabSelectionController = (ownerId, controller) => {
32
+ localControllers.set(ownerId, controller);
33
+ };
34
+ export const unregisterLocalGrabSelectionController = (ownerId) => {
35
+ localControllers.delete(ownerId);
36
+ setState((prevState) => ({
37
+ ...prevState,
38
+ selectedOwnerId: prevState.selectedOwnerId === ownerId ? null : prevState.selectedOwnerId,
39
+ selectionSessionOwnerId: prevState.selectionSessionOwnerId === ownerId ? null : prevState.selectionSessionOwnerId,
40
+ }));
41
+ };
42
+ export const useGrabControllerState = () => {
43
+ return useSyncExternalStore(subscribe, () => state, () => state);
44
+ };
45
+ export const setGrabSelectionSessionOwner = (ownerId) => {
46
+ setState((prevState) => ({
47
+ ...prevState,
48
+ selectionSessionOwnerId: ownerId,
49
+ }));
50
+ };
51
+ export const showGrabSelectionMenu = (ownerId) => {
52
+ setState((prevState) => ({
53
+ ...prevState,
54
+ selectedOwnerId: ownerId,
55
+ selectionSessionOwnerId: prevState.selectionSessionOwnerId === ownerId ? null : prevState.selectionSessionOwnerId,
56
+ }));
57
+ };
58
+ export const hideGrabSelectionMenu = (ownerId) => {
59
+ setState((prevState) => ({
60
+ ...prevState,
61
+ selectedOwnerId: prevState.selectedOwnerId === ownerId ? null : prevState.selectedOwnerId,
62
+ }));
63
+ };
64
+ export const clearGrabOwnerPresentation = (ownerId) => {
65
+ setState((prevState) => ({
66
+ ...prevState,
67
+ selectedOwnerId: prevState.selectedOwnerId === ownerId ? null : prevState.selectedOwnerId,
68
+ selectionSessionOwnerId: prevState.selectionSessionOwnerId === ownerId ? null : prevState.selectionSessionOwnerId,
69
+ }));
8
70
  };
9
71
  export const enableGrabbing = () => {
10
- if (!enableGrabbingHandler) {
72
+ const ownerId = getResolvedGrabSelectionOwnerId();
73
+ if (!ownerId) {
11
74
  console.error("[react-native-grab] Cannot enable grabbing. Ensure ReactNativeGrabRoot is mounted.");
12
75
  return;
13
76
  }
14
- enableGrabbingHandler();
15
- };
16
- export const toggleGrabMenu = () => {
17
- if (!toggleGrabMenuHandler) {
18
- console.error("[react-native-grab] Cannot toggle menu. Ensure ReactNativeGrabRoot is mounted.");
77
+ const controller = localControllers.get(ownerId);
78
+ if (!controller) {
79
+ console.error("[react-native-grab] Cannot enable grabbing. Ensure the focused ReactNativeGrabScreen is mounted.");
19
80
  return;
20
81
  }
21
- toggleGrabMenuHandler();
82
+ stopAllSelections();
83
+ setState((prevState) => ({
84
+ ...prevState,
85
+ selectedOwnerId: null,
86
+ selectionSessionOwnerId: ownerId,
87
+ }));
88
+ controller.startSelection();
89
+ };
90
+ export const toggleGrabMenu = () => {
91
+ setState((prevState) => {
92
+ const isVisible = !prevState.isMenuVisible;
93
+ if (!isVisible) {
94
+ stopAllSelections();
95
+ return {
96
+ isMenuVisible: false,
97
+ selectedOwnerId: null,
98
+ selectionSessionOwnerId: null,
99
+ };
100
+ }
101
+ return {
102
+ ...prevState,
103
+ isMenuVisible: true,
104
+ };
105
+ });
22
106
  };
23
107
  //# sourceMappingURL=grab-controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"grab-controller.js","sourceRoot":"","sources":["../../../src/react-native/grab-controller.ts"],"names":[],"mappings":"AAGA,IAAI,qBAAqB,GAAiC,IAAI,CAAC;AAC/D,IAAI,qBAAqB,GAAiC,IAAI,CAAC;AAE/D,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,OAAqC,EAAE,EAAE;IAChF,qBAAqB,GAAG,OAAO,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,OAAqC,EAAE,EAAE;IAChF,qBAAqB,GAAG,OAAO,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE;IACjC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC3B,OAAO,CAAC,KAAK,CACX,oFAAoF,CACrF,CAAC;QACF,OAAO;IACT,CAAC;IAED,qBAAqB,EAAE,CAAC;AAC1B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE;IACjC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,gFAAgF,CAAC,CAAC;QAChG,OAAO;IACT,CAAC;IAED,qBAAqB,EAAE,CAAC;AAC1B,CAAC,CAAC"}
1
+ {"version":3,"file":"grab-controller.js","sourceRoot":"","sources":["../../../src/react-native/grab-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,+BAA+B,EAAE,MAAM,cAAc,CAAC;AAc/D,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAwC,CAAC;AACzE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAc,CAAC;AAExC,IAAI,KAAK,GAAwB;IAC/B,aAAa,EAAE,KAAK;IACpB,eAAe,EAAE,IAAI;IACrB,uBAAuB,EAAE,IAAI;CAC9B,CAAC;AAEF,MAAM,MAAM,GAAG,GAAG,EAAE;IAClB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,QAAQ,EAAE,CAAC;IACb,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,QAAoB,EAAE,EAAE;IACzC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACxB,OAAO,GAAG,EAAE;QACV,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,CACf,OAAwF,EACxF,EAAE;IACF,KAAK,GAAG,OAAO,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACjE,MAAM,EAAE,CAAC;AACX,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,GAAG,EAAE;IAC7B,KAAK,MAAM,UAAU,IAAI,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC;QACnD,UAAU,CAAC,aAAa,EAAE,CAAC;QAC3B,UAAU,CAAC,kBAAkB,EAAE,CAAC;IAClC,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAClD,OAAe,EACf,UAAwC,EACxC,EAAE;IACF,gBAAgB,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sCAAsC,GAAG,CAAC,OAAe,EAAE,EAAE;IACxE,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEjC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACvB,GAAG,SAAS;QACZ,eAAe,EAAE,SAAS,CAAC,eAAe,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe;QACzF,uBAAuB,EACrB,SAAS,CAAC,uBAAuB,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,uBAAuB;KAC3F,CAAC,CAAC,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,EAAE;IACzC,OAAO,oBAAoB,CACzB,SAAS,EACT,GAAG,EAAE,CAAC,KAAK,EACX,GAAG,EAAE,CAAC,KAAK,CACZ,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,OAAsB,EAAE,EAAE;IACrE,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACvB,GAAG,SAAS;QACZ,uBAAuB,EAAE,OAAO;KACjC,CAAC,CAAC,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,OAAe,EAAE,EAAE;IACvD,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACvB,GAAG,SAAS;QACZ,eAAe,EAAE,OAAO;QACxB,uBAAuB,EACrB,SAAS,CAAC,uBAAuB,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,uBAAuB;KAC3F,CAAC,CAAC,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,OAAe,EAAE,EAAE;IACvD,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACvB,GAAG,SAAS;QACZ,eAAe,EAAE,SAAS,CAAC,eAAe,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe;KAC1F,CAAC,CAAC,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,OAAe,EAAE,EAAE;IAC5D,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACvB,GAAG,SAAS;QACZ,eAAe,EAAE,SAAS,CAAC,eAAe,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe;QACzF,uBAAuB,EACrB,SAAS,CAAC,uBAAuB,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,uBAAuB;KAC3F,CAAC,CAAC,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE;IACjC,MAAM,OAAO,GAAG,+BAA+B,EAAE,CAAC;IAClD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CACX,oFAAoF,CACrF,CAAC;QACF,OAAO;IACT,CAAC;IAED,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACjD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CACX,kGAAkG,CACnG,CAAC;QACF,OAAO;IACT,CAAC;IAED,iBAAiB,EAAE,CAAC;IACpB,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACvB,GAAG,SAAS;QACZ,eAAe,EAAE,IAAI;QACrB,uBAAuB,EAAE,OAAO;KACjC,CAAC,CAAC,CAAC;IACJ,UAAU,CAAC,cAAc,EAAE,CAAC;AAC9B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE;IACjC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;QACrB,MAAM,SAAS,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,iBAAiB,EAAE,CAAC;YACpB,OAAO;gBACL,aAAa,EAAE,KAAK;gBACpB,eAAe,EAAE,IAAI;gBACrB,uBAAuB,EAAE,IAAI;aAC9B,CAAC;QACJ,CAAC;QAED,OAAO;YACL,GAAG,SAAS;YACZ,aAAa,EAAE,IAAI;SACpB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}