react-native-drax 0.11.0-alpha.2 → 1.1.0

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 (246) hide show
  1. package/LICENSE.md +1 -1
  2. package/README.md +390 -227
  3. package/lib/module/DebugOverlay.js +121 -0
  4. package/lib/module/DebugOverlay.js.map +1 -0
  5. package/lib/module/Drax.js +36 -0
  6. package/lib/module/Drax.js.map +1 -0
  7. package/lib/module/DraxContext.js +6 -0
  8. package/lib/module/DraxContext.js.map +1 -0
  9. package/lib/module/DraxHandle.js +47 -0
  10. package/lib/module/DraxHandle.js.map +1 -0
  11. package/lib/module/DraxHandleContext.js +11 -0
  12. package/lib/module/DraxHandleContext.js.map +1 -0
  13. package/lib/module/DraxList.js +108 -0
  14. package/lib/module/DraxList.js.map +1 -0
  15. package/lib/module/DraxProvider.js +203 -0
  16. package/lib/module/DraxProvider.js.map +1 -0
  17. package/lib/module/DraxScrollView.js +167 -0
  18. package/lib/module/DraxScrollView.js.map +1 -0
  19. package/lib/module/DraxSubprovider.js +21 -0
  20. package/lib/module/DraxSubprovider.js.map +1 -0
  21. package/lib/module/DraxView.js +348 -0
  22. package/lib/module/DraxView.js.map +1 -0
  23. package/lib/module/HoverLayer.js +152 -0
  24. package/lib/module/HoverLayer.js.map +1 -0
  25. package/lib/module/SortableBoardContainer.js +386 -0
  26. package/lib/module/SortableBoardContainer.js.map +1 -0
  27. package/lib/module/SortableBoardContext.js +6 -0
  28. package/lib/module/SortableBoardContext.js.map +1 -0
  29. package/lib/module/SortableContainer.js +571 -0
  30. package/lib/module/SortableContainer.js.map +1 -0
  31. package/lib/module/SortableItem.js +226 -0
  32. package/lib/module/SortableItem.js.map +1 -0
  33. package/lib/module/SortableItemContext.js +38 -0
  34. package/lib/module/SortableItemContext.js.map +1 -0
  35. package/lib/module/compat/detectVersion.js +19 -0
  36. package/lib/module/compat/detectVersion.js.map +1 -0
  37. package/lib/module/compat/index.js +5 -0
  38. package/lib/module/compat/index.js.map +1 -0
  39. package/lib/module/compat/types.js +4 -0
  40. package/lib/module/compat/types.js.map +1 -0
  41. package/lib/module/compat/useDraxPanGesture.js +94 -0
  42. package/lib/module/compat/useDraxPanGesture.js.map +1 -0
  43. package/lib/module/hooks/index.js +5 -0
  44. package/lib/module/hooks/index.js.map +1 -0
  45. package/lib/module/hooks/useCallbackDispatch.js +688 -0
  46. package/lib/module/hooks/useCallbackDispatch.js.map +1 -0
  47. package/lib/module/hooks/useDragGesture.js +240 -0
  48. package/lib/module/hooks/useDragGesture.js.map +1 -0
  49. package/lib/module/hooks/useDraxContext.js +12 -0
  50. package/lib/module/hooks/useDraxContext.js.map +1 -0
  51. package/lib/module/hooks/useDraxId.js +13 -0
  52. package/lib/module/hooks/useDraxId.js.map +1 -0
  53. package/lib/module/hooks/useDraxMethods.js +73 -0
  54. package/lib/module/hooks/useDraxMethods.js.map +1 -0
  55. package/lib/module/hooks/useDraxScrollHandler.js +97 -0
  56. package/lib/module/hooks/useDraxScrollHandler.js.map +1 -0
  57. package/lib/module/hooks/useSortableBoard.js +37 -0
  58. package/lib/module/hooks/useSortableBoard.js.map +1 -0
  59. package/lib/module/hooks/useSortableList.js +988 -0
  60. package/lib/module/hooks/useSortableList.js.map +1 -0
  61. package/lib/module/hooks/useSpatialIndex.js +283 -0
  62. package/lib/module/hooks/useSpatialIndex.js.map +1 -0
  63. package/lib/module/hooks/useViewStyles.js +158 -0
  64. package/lib/module/hooks/useViewStyles.js.map +1 -0
  65. package/lib/module/hooks/useWebScrollFreeze.js +52 -0
  66. package/lib/module/hooks/useWebScrollFreeze.js.map +1 -0
  67. package/lib/module/index.js +37 -0
  68. package/lib/module/index.js.map +1 -0
  69. package/lib/module/math.js +294 -0
  70. package/lib/module/math.js.map +1 -0
  71. package/lib/module/package.json +1 -0
  72. package/lib/module/params.js +88 -0
  73. package/lib/module/params.js.map +1 -0
  74. package/lib/module/types.js +215 -0
  75. package/lib/module/types.js.map +1 -0
  76. package/lib/typescript/package.json +1 -0
  77. package/lib/typescript/src/DebugOverlay.d.ts +17 -0
  78. package/lib/typescript/src/DebugOverlay.d.ts.map +1 -0
  79. package/lib/typescript/src/Drax.d.ts +28 -0
  80. package/lib/typescript/src/Drax.d.ts.map +1 -0
  81. package/lib/typescript/src/DraxContext.d.ts +3 -0
  82. package/lib/typescript/src/DraxContext.d.ts.map +1 -0
  83. package/lib/typescript/src/DraxHandle.d.ts +25 -0
  84. package/lib/typescript/src/DraxHandle.d.ts.map +1 -0
  85. package/lib/typescript/src/DraxHandleContext.d.ts +12 -0
  86. package/lib/typescript/src/DraxHandleContext.d.ts.map +1 -0
  87. package/lib/typescript/src/DraxList.d.ts +66 -0
  88. package/lib/typescript/src/DraxList.d.ts.map +1 -0
  89. package/lib/typescript/src/DraxProvider.d.ts +4 -0
  90. package/lib/typescript/src/DraxProvider.d.ts.map +1 -0
  91. package/lib/typescript/src/DraxScrollView.d.ts +7 -0
  92. package/lib/typescript/src/DraxScrollView.d.ts.map +1 -0
  93. package/lib/typescript/src/DraxSubprovider.d.ts +4 -0
  94. package/lib/typescript/src/DraxSubprovider.d.ts.map +1 -0
  95. package/lib/typescript/src/DraxView.d.ts +4 -0
  96. package/lib/typescript/src/DraxView.d.ts.map +1 -0
  97. package/lib/typescript/src/HoverLayer.d.ts +38 -0
  98. package/lib/typescript/src/HoverLayer.d.ts.map +1 -0
  99. package/lib/typescript/src/SortableBoardContainer.d.ts +11 -0
  100. package/lib/typescript/src/SortableBoardContainer.d.ts.map +1 -0
  101. package/lib/typescript/src/SortableBoardContext.d.ts +4 -0
  102. package/lib/typescript/src/SortableBoardContext.d.ts.map +1 -0
  103. package/lib/typescript/src/SortableContainer.d.ts +13 -0
  104. package/lib/typescript/src/SortableContainer.d.ts.map +1 -0
  105. package/lib/typescript/src/SortableItem.d.ts +14 -0
  106. package/lib/typescript/src/SortableItem.d.ts.map +1 -0
  107. package/lib/typescript/src/SortableItemContext.d.ts +37 -0
  108. package/lib/typescript/src/SortableItemContext.d.ts.map +1 -0
  109. package/lib/typescript/src/compat/detectVersion.d.ts +2 -0
  110. package/lib/typescript/src/compat/detectVersion.d.ts.map +1 -0
  111. package/lib/typescript/src/compat/index.d.ts +4 -0
  112. package/lib/typescript/src/compat/index.d.ts.map +1 -0
  113. package/lib/typescript/src/compat/types.d.ts +33 -0
  114. package/lib/typescript/src/compat/types.d.ts.map +1 -0
  115. package/lib/typescript/src/compat/useDraxPanGesture.d.ts +8 -0
  116. package/lib/typescript/src/compat/useDraxPanGesture.d.ts.map +1 -0
  117. package/lib/typescript/src/hooks/index.d.ts +3 -0
  118. package/lib/typescript/src/hooks/index.d.ts.map +1 -0
  119. package/lib/typescript/src/hooks/useCallbackDispatch.d.ts +40 -0
  120. package/lib/typescript/src/hooks/useCallbackDispatch.d.ts.map +1 -0
  121. package/lib/typescript/src/hooks/useDragGesture.d.ts +17 -0
  122. package/lib/typescript/src/hooks/useDragGesture.d.ts.map +1 -0
  123. package/lib/typescript/src/hooks/useDraxContext.d.ts +2 -0
  124. package/lib/typescript/src/hooks/useDraxContext.d.ts.map +1 -0
  125. package/{build → lib/typescript/src}/hooks/useDraxId.d.ts +1 -0
  126. package/lib/typescript/src/hooks/useDraxId.d.ts.map +1 -0
  127. package/lib/typescript/src/hooks/useDraxMethods.d.ts +13 -0
  128. package/lib/typescript/src/hooks/useDraxMethods.d.ts.map +1 -0
  129. package/lib/typescript/src/hooks/useDraxScrollHandler.d.ts +27 -0
  130. package/lib/typescript/src/hooks/useDraxScrollHandler.d.ts.map +1 -0
  131. package/lib/typescript/src/hooks/useSortableBoard.d.ts +10 -0
  132. package/lib/typescript/src/hooks/useSortableBoard.d.ts.map +1 -0
  133. package/lib/typescript/src/hooks/useSortableList.d.ts +11 -0
  134. package/lib/typescript/src/hooks/useSortableList.d.ts.map +1 -0
  135. package/lib/typescript/src/hooks/useSpatialIndex.d.ts +22 -0
  136. package/lib/typescript/src/hooks/useSpatialIndex.d.ts.map +1 -0
  137. package/lib/typescript/src/hooks/useViewStyles.d.ts +183 -0
  138. package/lib/typescript/src/hooks/useViewStyles.d.ts.map +1 -0
  139. package/lib/typescript/src/hooks/useWebScrollFreeze.d.ts +14 -0
  140. package/lib/typescript/src/hooks/useWebScrollFreeze.d.ts.map +1 -0
  141. package/lib/typescript/src/index.d.ts +25 -0
  142. package/lib/typescript/src/index.d.ts.map +1 -0
  143. package/lib/typescript/src/math.d.ts +76 -0
  144. package/lib/typescript/src/math.d.ts.map +1 -0
  145. package/{build → lib/typescript/src}/params.d.ts +13 -9
  146. package/lib/typescript/src/params.d.ts.map +1 -0
  147. package/lib/typescript/src/types.d.ts +756 -0
  148. package/lib/typescript/src/types.d.ts.map +1 -0
  149. package/package.json +164 -34
  150. package/src/DebugOverlay.tsx +140 -0
  151. package/src/Drax.ts +33 -0
  152. package/src/DraxContext.ts +8 -0
  153. package/src/DraxHandle.tsx +52 -0
  154. package/src/DraxHandleContext.ts +15 -0
  155. package/src/DraxList.tsx +181 -0
  156. package/src/DraxProvider.tsx +224 -0
  157. package/src/DraxScrollView.tsx +180 -0
  158. package/src/DraxSubprovider.tsx +22 -0
  159. package/src/DraxView.tsx +430 -0
  160. package/src/HoverLayer.tsx +167 -0
  161. package/src/SortableBoardContainer.tsx +439 -0
  162. package/src/SortableBoardContext.ts +6 -0
  163. package/src/SortableContainer.tsx +650 -0
  164. package/src/SortableItem.tsx +264 -0
  165. package/src/SortableItemContext.ts +46 -0
  166. package/src/compat/detectVersion.ts +17 -0
  167. package/src/compat/index.ts +7 -0
  168. package/src/compat/types.ts +35 -0
  169. package/src/compat/useDraxPanGesture.ts +112 -0
  170. package/src/hooks/index.ts +2 -0
  171. package/src/hooks/useCallbackDispatch.tsx +830 -0
  172. package/src/hooks/useDragGesture.ts +273 -0
  173. package/src/hooks/useDraxContext.ts +11 -0
  174. package/src/hooks/useDraxId.ts +11 -0
  175. package/src/hooks/useDraxMethods.ts +71 -0
  176. package/src/hooks/useDraxScrollHandler.ts +121 -0
  177. package/src/hooks/useSortableBoard.ts +44 -0
  178. package/src/hooks/useSortableList.ts +1063 -0
  179. package/src/hooks/useSpatialIndex.ts +336 -0
  180. package/src/hooks/useViewStyles.ts +180 -0
  181. package/src/hooks/useWebScrollFreeze.ts +60 -0
  182. package/src/index.ts +111 -0
  183. package/src/math.ts +333 -0
  184. package/src/params.ts +74 -0
  185. package/src/types.ts +933 -0
  186. package/.editorconfig +0 -15
  187. package/.eslintrc.js +0 -4
  188. package/.prettierrc +0 -16
  189. package/CHANGELOG.md +0 -270
  190. package/CODE-OF-CONDUCT.md +0 -85
  191. package/CONTRIBUTING.md +0 -15
  192. package/FUNDING.yml +0 -4
  193. package/build/AllHoverViews.d.ts +0 -0
  194. package/build/AllHoverViews.js +0 -30
  195. package/build/DraxContext.d.ts +0 -2
  196. package/build/DraxContext.js +0 -6
  197. package/build/DraxList.d.ts +0 -8
  198. package/build/DraxList.js +0 -512
  199. package/build/DraxListItem.d.ts +0 -7
  200. package/build/DraxListItem.js +0 -121
  201. package/build/DraxProvider.d.ts +0 -2
  202. package/build/DraxProvider.js +0 -704
  203. package/build/DraxScrollView.d.ts +0 -6
  204. package/build/DraxScrollView.js +0 -136
  205. package/build/DraxSubprovider.d.ts +0 -3
  206. package/build/DraxSubprovider.js +0 -18
  207. package/build/DraxView.d.ts +0 -8
  208. package/build/DraxView.js +0 -93
  209. package/build/HoverView.d.ts +0 -8
  210. package/build/HoverView.js +0 -40
  211. package/build/PanGestureDetector.d.ts +0 -3
  212. package/build/PanGestureDetector.js +0 -49
  213. package/build/hooks/index.d.ts +0 -4
  214. package/build/hooks/index.js +0 -11
  215. package/build/hooks/useContent.d.ts +0 -23
  216. package/build/hooks/useContent.js +0 -212
  217. package/build/hooks/useDraxContext.d.ts +0 -1
  218. package/build/hooks/useDraxContext.js +0 -13
  219. package/build/hooks/useDraxId.js +0 -13
  220. package/build/hooks/useDraxProtocol.d.ts +0 -5
  221. package/build/hooks/useDraxProtocol.js +0 -32
  222. package/build/hooks/useDraxRegistry.d.ts +0 -78
  223. package/build/hooks/useDraxRegistry.js +0 -714
  224. package/build/hooks/useDraxScrollHandler.d.ts +0 -25
  225. package/build/hooks/useDraxScrollHandler.js +0 -89
  226. package/build/hooks/useDraxState.d.ts +0 -10
  227. package/build/hooks/useDraxState.js +0 -132
  228. package/build/hooks/useMeasurements.d.ts +0 -9
  229. package/build/hooks/useMeasurements.js +0 -119
  230. package/build/hooks/useStatus.d.ts +0 -11
  231. package/build/hooks/useStatus.js +0 -96
  232. package/build/index.d.ts +0 -9
  233. package/build/index.js +0 -33
  234. package/build/math.d.ts +0 -22
  235. package/build/math.js +0 -68
  236. package/build/params.js +0 -27
  237. package/build/transform.d.ts +0 -11
  238. package/build/transform.js +0 -59
  239. package/build/types.d.ts +0 -807
  240. package/build/types.js +0 -46
  241. package/docs/concept.md +0 -79
  242. package/docs/images/color-drag-drop.gif +0 -0
  243. package/docs/images/deck-cards.gif +0 -0
  244. package/docs/images/drag-drop-events.jpg +0 -0
  245. package/docs/images/knight-moves.gif +0 -0
  246. package/docs/images/reorderable-list.gif +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,45 +1,175 @@
1
1
  {
2
2
  "name": "react-native-drax",
3
- "version": "0.11.0-alpha.2",
4
- "description": "A drag-and-drop system for React Native",
5
- "repository": {
6
- "type": "git",
7
- "url": "git+ssh://git@github.com/nuclearpasta/react-native-drax.git"
3
+ "version": "1.1.0",
4
+ "description": "A drag and drop system for React Native",
5
+ "main": "./lib/module/index.js",
6
+ "types": "./lib/typescript/src/index.d.ts",
7
+ "react-native": "./src/index.ts",
8
+ "exports": {
9
+ ".": {
10
+ "source": "./src/index.ts",
11
+ "types": "./lib/typescript/src/index.d.ts",
12
+ "react-native": "./src/index.ts",
13
+ "default": "./lib/module/index.js"
14
+ },
15
+ "./package.json": "./package.json"
8
16
  },
9
- "main": "build/index.js",
10
- "types": "build/index.d.ts",
17
+ "files": [
18
+ "src",
19
+ "lib",
20
+ "android",
21
+ "ios",
22
+ "cpp",
23
+ "*.podspec",
24
+ "!ios/build",
25
+ "!android/build",
26
+ "!android/gradle",
27
+ "!android/gradlew",
28
+ "!android/gradlew.bat",
29
+ "!android/local.properties",
30
+ "!**/__tests__",
31
+ "!**/__fixtures__",
32
+ "!**/__mocks__",
33
+ "!**/.*"
34
+ ],
11
35
  "scripts": {
12
- "lint": "yarn run eslint src",
13
- "build": "yarn run tsc",
14
- "prepublish": "yarn run build",
15
- "publish:alpha": "npm publish --tag alpha"
36
+ "example": "yarn workspace react-native-drax-example",
37
+ "clean": "del-cli lib",
38
+ "prepare": "bob build",
39
+ "typecheck": "tsc && tsc --project example/tsconfig.json",
40
+ "lint": "eslint .",
41
+ "test": "jest --passWithNoTests",
42
+ "release": "release-it"
16
43
  },
17
- "author": "Joe Lafiosca <joe@proxi.gg>",
44
+ "keywords": [
45
+ "react-native",
46
+ "drag-and-drop",
47
+ "sortable",
48
+ "reorderable",
49
+ "drag",
50
+ "drop",
51
+ "reanimated",
52
+ "gesture-handler",
53
+ "ios",
54
+ "android",
55
+ "web"
56
+ ],
57
+ "repository": {
58
+ "type": "git",
59
+ "url": "git+https://github.com/nuclearpasta/react-native-drax.git"
60
+ },
61
+ "author": "Joe Lafiosca <joe@proxi.gg> (https://github.com/lafiosca)",
18
62
  "license": "MIT",
19
- "dependencies": {
20
- "lodash.isequal": "^4.5.0",
21
- "lodash.throttle": "^4.1.1",
22
- "typesafe-actions": "^5.1.0"
63
+ "bugs": {
64
+ "url": "https://github.com/nuclearpasta/react-native-drax/issues"
23
65
  },
24
- "peerDependencies": {
25
- "react": "*",
26
- "react-native": ">=0.65.0",
27
- "react-native-gesture-handler": ">=1.8.0"
66
+ "homepage": "https://nuclearpasta.com/react-native-drax",
67
+ "publishConfig": {
68
+ "registry": "https://registry.npmjs.org/"
28
69
  },
29
70
  "devDependencies": {
30
- "@types/lodash.isequal": "^4.5.5",
31
- "@types/lodash.throttle": "^4.1.6",
32
- "@types/node": "^14.14.43",
33
- "@types/react": "~18.3.14",
34
- "eslint": "8",
35
- "eslint-config-prettier": "^10.0.1",
36
- "eslint-config-universe": "^13.0.0",
37
- "eslint-plugin-prettier": "^5.2.3",
38
- "prettier": "^3.5.1",
39
- "react": "^18.3.1",
40
- "react-native": "^0.75.4",
41
- "react-native-gesture-handler": "^2.20.0",
42
- "react-native-reanimated": "^3.15.5",
43
- "typescript": "^5.6.3"
71
+ "@commitlint/config-conventional": "^20.4.1",
72
+ "@eslint/compat": "^2.0.2",
73
+ "@eslint/eslintrc": "^3.3.3",
74
+ "@eslint/js": "^9.39.2",
75
+ "@react-native/babel-preset": "0.83.1",
76
+ "@react-native/eslint-config": "0.83.1",
77
+ "@release-it/conventional-changelog": "^10.0.4",
78
+ "@types/jest": "^30.0.0",
79
+ "@types/react": "^19.2.10",
80
+ "commitlint": "^20.4.1",
81
+ "del-cli": "^7.0.0",
82
+ "eslint": "^9.39.2",
83
+ "eslint-config-prettier": "^10.1.8",
84
+ "eslint-plugin-ft-flow": "^3.0.11",
85
+ "jest": "^30.2.0",
86
+ "lefthook": "^2.0.16",
87
+ "prettier": "^3.8.1",
88
+ "react": "19.2.4",
89
+ "react-native": "0.83.1",
90
+ "react-native-builder-bob": "^0.40.13",
91
+ "react-native-gesture-handler": "^3.0.0-beta.2",
92
+ "react-native-reanimated": "^4.3.0-rc.0",
93
+ "react-native-worklets": "^0.8.0-rc.0",
94
+ "release-it": "^19.0.4",
95
+ "typescript": "^5.9.3"
96
+ },
97
+ "peerDependencies": {
98
+ "react": ">=18.0.0",
99
+ "react-native": ">=0.68.0",
100
+ "react-native-gesture-handler": ">=2.0.0",
101
+ "react-native-reanimated": "^4.0.0"
102
+ },
103
+ "workspaces": [
104
+ "example",
105
+ "docs-site"
106
+ ],
107
+ "packageManager": "yarn@4.11.0",
108
+ "react-native-builder-bob": {
109
+ "source": "src",
110
+ "output": "lib",
111
+ "targets": [
112
+ [
113
+ "module",
114
+ {
115
+ "esm": true
116
+ }
117
+ ],
118
+ [
119
+ "typescript",
120
+ {
121
+ "project": "tsconfig.build.json"
122
+ }
123
+ ]
124
+ ]
125
+ },
126
+ "prettier": {
127
+ "quoteProps": "consistent",
128
+ "singleQuote": true,
129
+ "tabWidth": 2,
130
+ "trailingComma": "es5",
131
+ "useTabs": false
132
+ },
133
+ "jest": {
134
+ "preset": "react-native",
135
+ "modulePathIgnorePatterns": [
136
+ "<rootDir>/example/node_modules",
137
+ "<rootDir>/lib/"
138
+ ]
139
+ },
140
+ "commitlint": {
141
+ "extends": [
142
+ "@commitlint/config-conventional"
143
+ ]
144
+ },
145
+ "release-it": {
146
+ "git": {
147
+ "commitMessage": "chore: release ${version}",
148
+ "tagName": "v${version}"
149
+ },
150
+ "npm": {
151
+ "publish": false
152
+ },
153
+ "github": {
154
+ "release": true
155
+ },
156
+ "plugins": {
157
+ "@release-it/conventional-changelog": {
158
+ "preset": {
159
+ "name": "angular"
160
+ }
161
+ }
162
+ }
163
+ },
164
+ "create-react-native-library": {
165
+ "type": "library",
166
+ "languages": "js",
167
+ "tools": [
168
+ "eslint",
169
+ "jest",
170
+ "lefthook",
171
+ "release-it"
172
+ ],
173
+ "version": "0.56.0"
44
174
  }
45
175
  }
@@ -0,0 +1,140 @@
1
+ import type { ReactNode } from 'react';
2
+ import { useEffect, useState } from 'react';
3
+ import { StyleSheet, Text, View } from 'react-native';
4
+ import type { SharedValue } from 'react-native-reanimated';
5
+
6
+ import type { Position, SpatialEntry } from './types';
7
+
8
+ interface DebugOverlayProps {
9
+ spatialIndexSV: SharedValue<SpatialEntry[]>;
10
+ scrollOffsetsSV: SharedValue<Position[]>;
11
+ }
12
+
13
+ interface AbsoluteEntry extends SpatialEntry {
14
+ absX: number;
15
+ absY: number;
16
+ }
17
+
18
+ function computeAbsoluteEntries(
19
+ entries: SpatialEntry[],
20
+ scrollOffsets: Position[]
21
+ ): AbsoluteEntry[] {
22
+ return entries.map((entry) => {
23
+ let absX = entry.x;
24
+ let absY = entry.y;
25
+ let parentIdx = entry.parentIndex;
26
+
27
+ while (parentIdx >= 0 && parentIdx < entries.length) {
28
+ const parent = entries[parentIdx]!;
29
+ const parentScroll = scrollOffsets[parentIdx] ?? { x: 0, y: 0 };
30
+ absX += parent.x - parentScroll.x;
31
+ absY += parent.y - parentScroll.y;
32
+ parentIdx = parent.parentIndex;
33
+ }
34
+
35
+ return { ...entry, absX, absY };
36
+ });
37
+ }
38
+
39
+ function getColor(entry: SpatialEntry): string {
40
+ if (entry.receptive && entry.draggable) return '#e07a52'; // orange — both
41
+ if (entry.receptive) return '#22c55e'; // green — receiver
42
+ if (entry.draggable) return '#3b82f6'; // blue — draggable
43
+ if (entry.monitoring) return '#eab308'; // yellow — monitor
44
+ return '#888888'; // grey — passive
45
+ }
46
+
47
+ function getLabel(entry: SpatialEntry): string {
48
+ const parts: string[] = [];
49
+ if (entry.draggable) parts.push('D');
50
+ if (entry.receptive) parts.push('R');
51
+ if (entry.monitoring) parts.push('M');
52
+ return parts.join('+') || '?';
53
+ }
54
+
55
+ /**
56
+ * Debug overlay that visualizes all registered Drax views.
57
+ * Reads the spatial index SharedValue and renders colored borders
58
+ * showing view bounds, roles (draggable/receptive/monitoring), and IDs.
59
+ *
60
+ * Rendered as an absolute-fill sibling in DraxProvider when debug={true}.
61
+ */
62
+ export const DebugOverlay = ({
63
+ spatialIndexSV,
64
+ scrollOffsetsSV,
65
+ }: DebugOverlayProps): ReactNode => {
66
+ const [entries, setEntries] = useState<AbsoluteEntry[]>([]);
67
+
68
+ // Poll the spatial index periodically (SharedValues update on UI thread,
69
+ // reading .value on JS thread gives the latest committed value).
70
+ useEffect(() => {
71
+ const update = () => {
72
+ const raw = spatialIndexSV.value;
73
+ const scrolls = scrollOffsetsSV.value;
74
+ if (raw.length > 0) {
75
+ setEntries(computeAbsoluteEntries(raw, scrolls));
76
+ } else {
77
+ setEntries([]);
78
+ }
79
+ };
80
+
81
+ update();
82
+ const interval = setInterval(update, 500);
83
+ return () => clearInterval(interval);
84
+ }, [spatialIndexSV, scrollOffsetsSV]);
85
+
86
+ if (entries.length === 0) return null;
87
+
88
+ return (
89
+ <View style={styles.container} pointerEvents="none">
90
+ {entries.map((entry) => {
91
+ const color = getColor(entry);
92
+ const label = getLabel(entry);
93
+ return (
94
+ <View
95
+ key={entry.id}
96
+ style={[
97
+ styles.overlay,
98
+ {
99
+ left: entry.absX,
100
+ top: entry.absY,
101
+ width: entry.width,
102
+ height: entry.height,
103
+ borderColor: color,
104
+ },
105
+ ]}
106
+ >
107
+ <Text style={[styles.label, { backgroundColor: color }]}>
108
+ {label}
109
+ </Text>
110
+ </View>
111
+ );
112
+ })}
113
+ </View>
114
+ );
115
+ };
116
+
117
+ const styles = StyleSheet.create({
118
+ container: {
119
+ ...StyleSheet.absoluteFillObject,
120
+ zIndex: 99999,
121
+ },
122
+ overlay: {
123
+ position: 'absolute',
124
+ borderWidth: 2,
125
+ borderStyle: 'dashed',
126
+ },
127
+ label: {
128
+ position: 'absolute',
129
+ top: -1,
130
+ left: -1,
131
+ color: '#fff',
132
+ fontSize: 9,
133
+ fontWeight: '700',
134
+ fontFamily: 'monospace',
135
+ paddingHorizontal: 3,
136
+ paddingVertical: 1,
137
+ borderRadius: 2,
138
+ overflow: 'hidden',
139
+ },
140
+ });
package/src/Drax.ts ADDED
@@ -0,0 +1,33 @@
1
+ import { DraxHandle } from './DraxHandle';
2
+ import { DraxList } from './DraxList';
3
+ import { DraxProvider } from './DraxProvider';
4
+ import { DraxScrollView } from './DraxScrollView';
5
+ import { DraxView } from './DraxView';
6
+ import { SortableBoardContainer } from './SortableBoardContainer';
7
+ import { SortableContainer } from './SortableContainer';
8
+ import { SortableItem } from './SortableItem';
9
+
10
+ /**
11
+ * Namespace object for convenient access to all Drax components.
12
+ *
13
+ * @example
14
+ * ```tsx
15
+ * import { Drax } from 'react-native-drax';
16
+ *
17
+ * <Drax.Provider>
18
+ * <Drax.View draggable>
19
+ * <Drax.Handle><GripIcon /></Drax.Handle>
20
+ * </Drax.View>
21
+ * </Drax.Provider>
22
+ * ```
23
+ */
24
+ export const Drax = {
25
+ Handle: DraxHandle,
26
+ List: DraxList,
27
+ Provider: DraxProvider,
28
+ ScrollView: DraxScrollView,
29
+ View: DraxView,
30
+ SortableBoardContainer,
31
+ SortableContainer,
32
+ SortableItem,
33
+ } as const;
@@ -0,0 +1,8 @@
1
+ import { createContext } from 'react';
2
+
3
+ import type { DraxContextValue } from './types';
4
+
5
+ export const DraxContext = createContext<DraxContextValue | undefined>(
6
+ undefined
7
+ );
8
+ DraxContext.displayName = 'Drax';
@@ -0,0 +1,52 @@
1
+ import type { ReactNode } from 'react';
2
+ import { use } from 'react';
3
+ import type { StyleProp, ViewStyle } from 'react-native';
4
+ import { GestureDetector } from 'react-native-gesture-handler';
5
+ import Reanimated from 'react-native-reanimated';
6
+
7
+ import { DraxHandleContext } from './DraxHandleContext';
8
+
9
+ export interface DraxHandleProps {
10
+ children: ReactNode;
11
+ style?: StyleProp<ViewStyle>;
12
+ }
13
+
14
+ /**
15
+ * Drag handle component — only touches on this area will start a drag.
16
+ *
17
+ * Must be a descendant of a `DraxView` that has `dragHandle={true}`.
18
+ * The parent DraxView provides its gesture via context; this component
19
+ * attaches it to the handle's touch area via GestureDetector.
20
+ *
21
+ * @example
22
+ * ```tsx
23
+ * <DraxView dragHandle style={styles.row}>
24
+ * <DraxHandle style={styles.grip}>
25
+ * <GripIcon />
26
+ * </DraxHandle>
27
+ * <Text>Item content</Text>
28
+ * </DraxView>
29
+ * ```
30
+ */
31
+ export function DraxHandle({ children, style }: DraxHandleProps) {
32
+ const ctx = use(DraxHandleContext);
33
+
34
+ if (!ctx) {
35
+ // No context = either misconfigured, or rendering inside hover overlay
36
+ // (which clones children outside the DraxHandleContext tree).
37
+ // Render as a plain view — the gesture isn't needed in hover.
38
+ return (
39
+ <Reanimated.View style={style}>
40
+ {children}
41
+ </Reanimated.View>
42
+ );
43
+ }
44
+
45
+ return (
46
+ <GestureDetector gesture={ctx.gesture}>
47
+ <Reanimated.View style={style}>
48
+ {children}
49
+ </Reanimated.View>
50
+ </GestureDetector>
51
+ );
52
+ }
@@ -0,0 +1,15 @@
1
+ import { createContext } from 'react';
2
+
3
+ import type { DraxPanGesture } from './compat';
4
+
5
+ export interface DraxHandleContextValue {
6
+ gesture: DraxPanGesture;
7
+ }
8
+
9
+ /**
10
+ * Context that passes the drag gesture from a DraxView (with `dragHandle` prop)
11
+ * to its descendant DraxHandle component. When a DraxView has `dragHandle={true}`,
12
+ * it does NOT wrap itself in a GestureDetector. Instead, the gesture is provided
13
+ * via this context so that DraxHandle can attach it to a smaller touch area.
14
+ */
15
+ export const DraxHandleContext = createContext<DraxHandleContextValue | null>(null);