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.
- package/LICENSE.md +1 -1
- package/README.md +390 -227
- package/lib/module/DebugOverlay.js +121 -0
- package/lib/module/DebugOverlay.js.map +1 -0
- package/lib/module/Drax.js +36 -0
- package/lib/module/Drax.js.map +1 -0
- package/lib/module/DraxContext.js +6 -0
- package/lib/module/DraxContext.js.map +1 -0
- package/lib/module/DraxHandle.js +47 -0
- package/lib/module/DraxHandle.js.map +1 -0
- package/lib/module/DraxHandleContext.js +11 -0
- package/lib/module/DraxHandleContext.js.map +1 -0
- package/lib/module/DraxList.js +108 -0
- package/lib/module/DraxList.js.map +1 -0
- package/lib/module/DraxProvider.js +203 -0
- package/lib/module/DraxProvider.js.map +1 -0
- package/lib/module/DraxScrollView.js +167 -0
- package/lib/module/DraxScrollView.js.map +1 -0
- package/lib/module/DraxSubprovider.js +21 -0
- package/lib/module/DraxSubprovider.js.map +1 -0
- package/lib/module/DraxView.js +348 -0
- package/lib/module/DraxView.js.map +1 -0
- package/lib/module/HoverLayer.js +152 -0
- package/lib/module/HoverLayer.js.map +1 -0
- package/lib/module/SortableBoardContainer.js +386 -0
- package/lib/module/SortableBoardContainer.js.map +1 -0
- package/lib/module/SortableBoardContext.js +6 -0
- package/lib/module/SortableBoardContext.js.map +1 -0
- package/lib/module/SortableContainer.js +571 -0
- package/lib/module/SortableContainer.js.map +1 -0
- package/lib/module/SortableItem.js +226 -0
- package/lib/module/SortableItem.js.map +1 -0
- package/lib/module/SortableItemContext.js +38 -0
- package/lib/module/SortableItemContext.js.map +1 -0
- package/lib/module/compat/detectVersion.js +19 -0
- package/lib/module/compat/detectVersion.js.map +1 -0
- package/lib/module/compat/index.js +5 -0
- package/lib/module/compat/index.js.map +1 -0
- package/lib/module/compat/types.js +4 -0
- package/lib/module/compat/types.js.map +1 -0
- package/lib/module/compat/useDraxPanGesture.js +94 -0
- package/lib/module/compat/useDraxPanGesture.js.map +1 -0
- package/lib/module/hooks/index.js +5 -0
- package/lib/module/hooks/index.js.map +1 -0
- package/lib/module/hooks/useCallbackDispatch.js +688 -0
- package/lib/module/hooks/useCallbackDispatch.js.map +1 -0
- package/lib/module/hooks/useDragGesture.js +240 -0
- package/lib/module/hooks/useDragGesture.js.map +1 -0
- package/lib/module/hooks/useDraxContext.js +12 -0
- package/lib/module/hooks/useDraxContext.js.map +1 -0
- package/lib/module/hooks/useDraxId.js +13 -0
- package/lib/module/hooks/useDraxId.js.map +1 -0
- package/lib/module/hooks/useDraxMethods.js +73 -0
- package/lib/module/hooks/useDraxMethods.js.map +1 -0
- package/lib/module/hooks/useDraxScrollHandler.js +97 -0
- package/lib/module/hooks/useDraxScrollHandler.js.map +1 -0
- package/lib/module/hooks/useSortableBoard.js +37 -0
- package/lib/module/hooks/useSortableBoard.js.map +1 -0
- package/lib/module/hooks/useSortableList.js +988 -0
- package/lib/module/hooks/useSortableList.js.map +1 -0
- package/lib/module/hooks/useSpatialIndex.js +283 -0
- package/lib/module/hooks/useSpatialIndex.js.map +1 -0
- package/lib/module/hooks/useViewStyles.js +158 -0
- package/lib/module/hooks/useViewStyles.js.map +1 -0
- package/lib/module/hooks/useWebScrollFreeze.js +52 -0
- package/lib/module/hooks/useWebScrollFreeze.js.map +1 -0
- package/lib/module/index.js +37 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/math.js +294 -0
- package/lib/module/math.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/params.js +88 -0
- package/lib/module/params.js.map +1 -0
- package/lib/module/types.js +215 -0
- package/lib/module/types.js.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/DebugOverlay.d.ts +17 -0
- package/lib/typescript/src/DebugOverlay.d.ts.map +1 -0
- package/lib/typescript/src/Drax.d.ts +28 -0
- package/lib/typescript/src/Drax.d.ts.map +1 -0
- package/lib/typescript/src/DraxContext.d.ts +3 -0
- package/lib/typescript/src/DraxContext.d.ts.map +1 -0
- package/lib/typescript/src/DraxHandle.d.ts +25 -0
- package/lib/typescript/src/DraxHandle.d.ts.map +1 -0
- package/lib/typescript/src/DraxHandleContext.d.ts +12 -0
- package/lib/typescript/src/DraxHandleContext.d.ts.map +1 -0
- package/lib/typescript/src/DraxList.d.ts +66 -0
- package/lib/typescript/src/DraxList.d.ts.map +1 -0
- package/lib/typescript/src/DraxProvider.d.ts +4 -0
- package/lib/typescript/src/DraxProvider.d.ts.map +1 -0
- package/lib/typescript/src/DraxScrollView.d.ts +7 -0
- package/lib/typescript/src/DraxScrollView.d.ts.map +1 -0
- package/lib/typescript/src/DraxSubprovider.d.ts +4 -0
- package/lib/typescript/src/DraxSubprovider.d.ts.map +1 -0
- package/lib/typescript/src/DraxView.d.ts +4 -0
- package/lib/typescript/src/DraxView.d.ts.map +1 -0
- package/lib/typescript/src/HoverLayer.d.ts +38 -0
- package/lib/typescript/src/HoverLayer.d.ts.map +1 -0
- package/lib/typescript/src/SortableBoardContainer.d.ts +11 -0
- package/lib/typescript/src/SortableBoardContainer.d.ts.map +1 -0
- package/lib/typescript/src/SortableBoardContext.d.ts +4 -0
- package/lib/typescript/src/SortableBoardContext.d.ts.map +1 -0
- package/lib/typescript/src/SortableContainer.d.ts +13 -0
- package/lib/typescript/src/SortableContainer.d.ts.map +1 -0
- package/lib/typescript/src/SortableItem.d.ts +14 -0
- package/lib/typescript/src/SortableItem.d.ts.map +1 -0
- package/lib/typescript/src/SortableItemContext.d.ts +37 -0
- package/lib/typescript/src/SortableItemContext.d.ts.map +1 -0
- package/lib/typescript/src/compat/detectVersion.d.ts +2 -0
- package/lib/typescript/src/compat/detectVersion.d.ts.map +1 -0
- package/lib/typescript/src/compat/index.d.ts +4 -0
- package/lib/typescript/src/compat/index.d.ts.map +1 -0
- package/lib/typescript/src/compat/types.d.ts +33 -0
- package/lib/typescript/src/compat/types.d.ts.map +1 -0
- package/lib/typescript/src/compat/useDraxPanGesture.d.ts +8 -0
- package/lib/typescript/src/compat/useDraxPanGesture.d.ts.map +1 -0
- package/lib/typescript/src/hooks/index.d.ts +3 -0
- package/lib/typescript/src/hooks/index.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useCallbackDispatch.d.ts +40 -0
- package/lib/typescript/src/hooks/useCallbackDispatch.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useDragGesture.d.ts +17 -0
- package/lib/typescript/src/hooks/useDragGesture.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useDraxContext.d.ts +2 -0
- package/lib/typescript/src/hooks/useDraxContext.d.ts.map +1 -0
- package/{build → lib/typescript/src}/hooks/useDraxId.d.ts +1 -0
- package/lib/typescript/src/hooks/useDraxId.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useDraxMethods.d.ts +13 -0
- package/lib/typescript/src/hooks/useDraxMethods.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useDraxScrollHandler.d.ts +27 -0
- package/lib/typescript/src/hooks/useDraxScrollHandler.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useSortableBoard.d.ts +10 -0
- package/lib/typescript/src/hooks/useSortableBoard.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useSortableList.d.ts +11 -0
- package/lib/typescript/src/hooks/useSortableList.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useSpatialIndex.d.ts +22 -0
- package/lib/typescript/src/hooks/useSpatialIndex.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useViewStyles.d.ts +183 -0
- package/lib/typescript/src/hooks/useViewStyles.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useWebScrollFreeze.d.ts +14 -0
- package/lib/typescript/src/hooks/useWebScrollFreeze.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +25 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/math.d.ts +76 -0
- package/lib/typescript/src/math.d.ts.map +1 -0
- package/{build → lib/typescript/src}/params.d.ts +13 -9
- package/lib/typescript/src/params.d.ts.map +1 -0
- package/lib/typescript/src/types.d.ts +756 -0
- package/lib/typescript/src/types.d.ts.map +1 -0
- package/package.json +164 -34
- package/src/DebugOverlay.tsx +140 -0
- package/src/Drax.ts +33 -0
- package/src/DraxContext.ts +8 -0
- package/src/DraxHandle.tsx +52 -0
- package/src/DraxHandleContext.ts +15 -0
- package/src/DraxList.tsx +181 -0
- package/src/DraxProvider.tsx +224 -0
- package/src/DraxScrollView.tsx +180 -0
- package/src/DraxSubprovider.tsx +22 -0
- package/src/DraxView.tsx +430 -0
- package/src/HoverLayer.tsx +167 -0
- package/src/SortableBoardContainer.tsx +439 -0
- package/src/SortableBoardContext.ts +6 -0
- package/src/SortableContainer.tsx +650 -0
- package/src/SortableItem.tsx +264 -0
- package/src/SortableItemContext.ts +46 -0
- package/src/compat/detectVersion.ts +17 -0
- package/src/compat/index.ts +7 -0
- package/src/compat/types.ts +35 -0
- package/src/compat/useDraxPanGesture.ts +112 -0
- package/src/hooks/index.ts +2 -0
- package/src/hooks/useCallbackDispatch.tsx +830 -0
- package/src/hooks/useDragGesture.ts +273 -0
- package/src/hooks/useDraxContext.ts +11 -0
- package/src/hooks/useDraxId.ts +11 -0
- package/src/hooks/useDraxMethods.ts +71 -0
- package/src/hooks/useDraxScrollHandler.ts +121 -0
- package/src/hooks/useSortableBoard.ts +44 -0
- package/src/hooks/useSortableList.ts +1063 -0
- package/src/hooks/useSpatialIndex.ts +336 -0
- package/src/hooks/useViewStyles.ts +180 -0
- package/src/hooks/useWebScrollFreeze.ts +60 -0
- package/src/index.ts +111 -0
- package/src/math.ts +333 -0
- package/src/params.ts +74 -0
- package/src/types.ts +933 -0
- package/.editorconfig +0 -15
- package/.eslintrc.js +0 -4
- package/.prettierrc +0 -16
- package/CHANGELOG.md +0 -270
- package/CODE-OF-CONDUCT.md +0 -85
- package/CONTRIBUTING.md +0 -15
- package/FUNDING.yml +0 -4
- package/build/AllHoverViews.d.ts +0 -0
- package/build/AllHoverViews.js +0 -30
- package/build/DraxContext.d.ts +0 -2
- package/build/DraxContext.js +0 -6
- package/build/DraxList.d.ts +0 -8
- package/build/DraxList.js +0 -512
- package/build/DraxListItem.d.ts +0 -7
- package/build/DraxListItem.js +0 -121
- package/build/DraxProvider.d.ts +0 -2
- package/build/DraxProvider.js +0 -704
- package/build/DraxScrollView.d.ts +0 -6
- package/build/DraxScrollView.js +0 -136
- package/build/DraxSubprovider.d.ts +0 -3
- package/build/DraxSubprovider.js +0 -18
- package/build/DraxView.d.ts +0 -8
- package/build/DraxView.js +0 -93
- package/build/HoverView.d.ts +0 -8
- package/build/HoverView.js +0 -40
- package/build/PanGestureDetector.d.ts +0 -3
- package/build/PanGestureDetector.js +0 -49
- package/build/hooks/index.d.ts +0 -4
- package/build/hooks/index.js +0 -11
- package/build/hooks/useContent.d.ts +0 -23
- package/build/hooks/useContent.js +0 -212
- package/build/hooks/useDraxContext.d.ts +0 -1
- package/build/hooks/useDraxContext.js +0 -13
- package/build/hooks/useDraxId.js +0 -13
- package/build/hooks/useDraxProtocol.d.ts +0 -5
- package/build/hooks/useDraxProtocol.js +0 -32
- package/build/hooks/useDraxRegistry.d.ts +0 -78
- package/build/hooks/useDraxRegistry.js +0 -714
- package/build/hooks/useDraxScrollHandler.d.ts +0 -25
- package/build/hooks/useDraxScrollHandler.js +0 -89
- package/build/hooks/useDraxState.d.ts +0 -10
- package/build/hooks/useDraxState.js +0 -132
- package/build/hooks/useMeasurements.d.ts +0 -9
- package/build/hooks/useMeasurements.js +0 -119
- package/build/hooks/useStatus.d.ts +0 -11
- package/build/hooks/useStatus.js +0 -96
- package/build/index.d.ts +0 -9
- package/build/index.js +0 -33
- package/build/math.d.ts +0 -22
- package/build/math.js +0 -68
- package/build/params.js +0 -27
- package/build/transform.d.ts +0 -11
- package/build/transform.js +0 -59
- package/build/types.d.ts +0 -807
- package/build/types.js +0 -46
- package/docs/concept.md +0 -79
- package/docs/images/color-drag-drop.gif +0 -0
- package/docs/images/deck-cards.gif +0 -0
- package/docs/images/drag-drop-events.jpg +0 -0
- package/docs/images/knight-moves.gif +0 -0
- 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": "
|
|
4
|
-
"description": "A drag
|
|
5
|
-
"
|
|
6
|
-
|
|
7
|
-
|
|
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
|
-
"
|
|
10
|
-
|
|
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
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"
|
|
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
|
-
"
|
|
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
|
-
"
|
|
20
|
-
"
|
|
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
|
-
"
|
|
25
|
-
|
|
26
|
-
"
|
|
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
|
-
"@
|
|
31
|
-
"@
|
|
32
|
-
"@
|
|
33
|
-
"@
|
|
34
|
-
"
|
|
35
|
-
"eslint-config
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
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,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);
|