react-native-tree-multi-select 1.8.1 → 1.9.0-beta.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 (31) hide show
  1. package/README.md +52 -24
  2. package/lib/commonjs/TreeView.js +17 -6
  3. package/lib/commonjs/TreeView.js.map +1 -1
  4. package/lib/commonjs/components/NodeList.js +26 -10
  5. package/lib/commonjs/components/NodeList.js.map +1 -1
  6. package/lib/commonjs/handlers/ScrollToNodeHandler.js +169 -0
  7. package/lib/commonjs/handlers/ScrollToNodeHandler.js.map +1 -0
  8. package/lib/commonjs/helpers/expandCollapse.helper.js +7 -1
  9. package/lib/commonjs/helpers/expandCollapse.helper.js.map +1 -1
  10. package/lib/module/TreeView.js +18 -5
  11. package/lib/module/TreeView.js.map +1 -1
  12. package/lib/module/components/NodeList.js +27 -11
  13. package/lib/module/components/NodeList.js.map +1 -1
  14. package/lib/module/handlers/ScrollToNodeHandler.js +165 -0
  15. package/lib/module/handlers/ScrollToNodeHandler.js.map +1 -0
  16. package/lib/module/helpers/expandCollapse.helper.js +7 -1
  17. package/lib/module/helpers/expandCollapse.helper.js.map +1 -1
  18. package/lib/typescript/TreeView.d.ts.map +1 -1
  19. package/lib/typescript/components/NodeList.d.ts.map +1 -1
  20. package/lib/typescript/handlers/ScrollToNodeHandler.d.ts +58 -0
  21. package/lib/typescript/handlers/ScrollToNodeHandler.d.ts.map +1 -0
  22. package/lib/typescript/helpers/expandCollapse.helper.d.ts +3 -1
  23. package/lib/typescript/helpers/expandCollapse.helper.d.ts.map +1 -1
  24. package/lib/typescript/types/treeView.types.d.ts +6 -1
  25. package/lib/typescript/types/treeView.types.d.ts.map +1 -1
  26. package/package.json +1 -1
  27. package/src/TreeView.tsx +182 -152
  28. package/src/components/NodeList.tsx +31 -11
  29. package/src/handlers/ScrollToNodeHandler.tsx +222 -0
  30. package/src/helpers/expandCollapse.helper.ts +16 -1
  31. package/src/types/treeView.types.ts +15 -1
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
 
3
- import React, { useMemo } from 'react';
3
+ import React from 'react';
4
4
  import { InteractionManager } from 'react-native';
5
5
  import NodeList from './components/NodeList';
6
6
  import { selectAll, selectAllFiltered, unselectAll, unselectAllFiltered, initializeNodeMaps, expandAll, collapseAll, toggleCheckboxes, expandNodes, collapseNodes } from './helpers';
7
- import { useTreeViewStore } from './store/treeView.store';
7
+ import { getTreeViewStore, useTreeViewStore } from './store/treeView.store';
8
8
  import usePreviousState from './utils/usePreviousState';
9
9
  import { useShallow } from "zustand/react/shallow";
10
10
  import uuid from "react-native-uuid";
@@ -19,6 +19,7 @@ function _innerTreeView(props, ref) {
19
19
  selectionPropagation,
20
20
  preselectedIds = [],
21
21
  preExpandedIds = [],
22
+ initialScrollNodeID,
22
23
  treeFlashListProps,
23
24
  checkBoxViewStyleProps,
24
25
  indentationMultiplier,
@@ -27,7 +28,7 @@ function _innerTreeView(props, ref) {
27
28
  ExpandCollapseTouchableComponent,
28
29
  CustomNodeRowComponent
29
30
  } = props;
30
- const storeId = useMemo(() => uuid.v4(), []);
31
+ const storeId = React.useMemo(() => uuid.v4(), []);
31
32
  const {
32
33
  expanded,
33
34
  updateExpanded,
@@ -64,8 +65,11 @@ function _innerTreeView(props, ref) {
64
65
  collapseNodes: ids => collapseNodes(storeId, ids),
65
66
  selectNodes: ids => selectNodes(ids),
66
67
  unselectNodes: ids => unselectNodes(ids),
67
- setSearchText
68
+ setSearchText,
69
+ scrollToNodeID,
70
+ getChildToParentMap
68
71
  }));
72
+ const scrollToNodeHandlerRef = React.useRef(null);
69
73
  const prevSearchText = usePreviousState(searchText);
70
74
  useDeepCompareEffect(() => {
71
75
  cleanUpTreeViewStore();
@@ -77,7 +81,7 @@ function _innerTreeView(props, ref) {
77
81
  toggleCheckboxes(storeId, preselectedIds, true);
78
82
 
79
83
  // Expand pre-expanded nodes
80
- expandNodes(storeId, preExpandedIds);
84
+ expandNodes(storeId, [...preExpandedIds, ...(initialScrollNodeID ? [initialScrollNodeID] : [])]);
81
85
  }, [data]);
82
86
  function selectNodes(ids) {
83
87
  toggleCheckboxes(storeId, ids, true);
@@ -89,6 +93,13 @@ function _innerTreeView(props, ref) {
89
93
  updateSearchText(text);
90
94
  updateSearchKeys(keys);
91
95
  }
96
+ function scrollToNodeID(params) {
97
+ scrollToNodeHandlerRef.current?.scrollToNodeID(params);
98
+ }
99
+ function getChildToParentMap() {
100
+ const treeViewStore = getTreeViewStore(storeId);
101
+ return treeViewStore.getState().childToParentMap;
102
+ }
92
103
  const getIds = React.useCallback(node => {
93
104
  if (!node.children || node.children.length === 0) {
94
105
  return [node.id];
@@ -122,6 +133,8 @@ function _innerTreeView(props, ref) {
122
133
  }, [cleanUpTreeViewStore]);
123
134
  return /*#__PURE__*/_jsx(NodeList, {
124
135
  storeId: storeId,
136
+ scrollToNodeHandlerRef: scrollToNodeHandlerRef,
137
+ initialScrollNodeID: initialScrollNodeID,
125
138
  treeFlashListProps: treeFlashListProps,
126
139
  checkBoxViewStyleProps: checkBoxViewStyleProps,
127
140
  indentationMultiplier: indentationMultiplier,
@@ -1 +1 @@
1
- {"version":3,"names":["React","useMemo","InteractionManager","NodeList","selectAll","selectAllFiltered","unselectAll","unselectAllFiltered","initializeNodeMaps","expandAll","collapseAll","toggleCheckboxes","expandNodes","collapseNodes","useTreeViewStore","usePreviousState","useShallow","uuid","useDeepCompareEffect","typedMemo","jsx","_jsx","_innerTreeView","props","ref","data","onCheck","onExpand","selectionPropagation","preselectedIds","preExpandedIds","treeFlashListProps","checkBoxViewStyleProps","indentationMultiplier","CheckboxComponent","ExpandCollapseIconComponent","ExpandCollapseTouchableComponent","CustomNodeRowComponent","storeId","v4","expanded","updateExpanded","initialTreeViewData","updateInitialTreeViewData","searchText","updateSearchText","updateSearchKeys","checked","indeterminate","setSelectionPropagation","cleanUpTreeViewStore","state","useImperativeHandle","ids","selectNodes","unselectNodes","setSearchText","prevSearchText","text","keys","getIds","useCallback","node","children","length","id","flatMap","item","useEffect","Array","from","runAfterInteractions","Set","_TreeView","forwardRef","TreeView"],"sourceRoot":"../../src","sources":["TreeView.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","InteractionManager","NodeList","selectAll","selectAllFiltered","unselectAll","unselectAllFiltered","initializeNodeMaps","expandAll","collapseAll","toggleCheckboxes","expandNodes","collapseNodes","getTreeViewStore","useTreeViewStore","usePreviousState","useShallow","uuid","useDeepCompareEffect","typedMemo","jsx","_jsx","_innerTreeView","props","ref","data","onCheck","onExpand","selectionPropagation","preselectedIds","preExpandedIds","initialScrollNodeID","treeFlashListProps","checkBoxViewStyleProps","indentationMultiplier","CheckboxComponent","ExpandCollapseIconComponent","ExpandCollapseTouchableComponent","CustomNodeRowComponent","storeId","useMemo","v4","expanded","updateExpanded","initialTreeViewData","updateInitialTreeViewData","searchText","updateSearchText","updateSearchKeys","checked","indeterminate","setSelectionPropagation","cleanUpTreeViewStore","state","useImperativeHandle","ids","selectNodes","unselectNodes","setSearchText","scrollToNodeID","getChildToParentMap","scrollToNodeHandlerRef","useRef","prevSearchText","text","keys","params","current","treeViewStore","getState","childToParentMap","getIds","useCallback","node","children","length","id","flatMap","item","useEffect","Array","from","runAfterInteractions","Set","_TreeView","forwardRef","TreeView"],"sourceRoot":"../../src","sources":["TreeView.tsx"],"mappings":"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","ignoreList":[]}
@@ -10,12 +10,15 @@ import { CustomExpandCollapseIcon } from "./CustomExpandCollapseIcon";
10
10
  import { defaultIndentationMultiplier } from "../constants/treeView.constants";
11
11
  import { useShallow } from 'zustand/react/shallow';
12
12
  import { typedMemo } from "../utils/typedMemo";
13
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
+ import { ScrollToNodeHandler } from "../handlers/ScrollToNodeHandler";
14
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
14
15
  const NodeList = typedMemo(_NodeList);
15
16
  export default NodeList;
16
17
  function _NodeList(props) {
17
18
  const {
18
19
  storeId,
20
+ scrollToNodeHandlerRef,
21
+ initialScrollNodeID,
19
22
  treeFlashListProps,
20
23
  checkBoxViewStyleProps,
21
24
  indentationMultiplier,
@@ -37,6 +40,8 @@ function _NodeList(props) {
37
40
  searchKeys: state.searchKeys,
38
41
  searchText: state.searchText
39
42
  })));
43
+ const flashListRef = React.useRef(null);
44
+ const [initialScrollIndex, setInitialScrollIndex] = React.useState(-1);
40
45
 
41
46
  // First we filter the tree as per the search term and keys
42
47
  const filteredTree = React.useMemo(() => getFilteredTreeData(initialTreeViewData, searchText.trim().toLowerCase(), searchKeys), [initialTreeViewData, searchText, searchKeys]);
@@ -64,16 +69,27 @@ function _NodeList(props) {
64
69
  CustomNodeRowComponent: CustomNodeRowComponent
65
70
  });
66
71
  }, [storeId, CheckboxComponent, ExpandCollapseIconComponent, ExpandCollapseTouchableComponent, CustomNodeRowComponent, checkBoxViewStyleProps, indentationMultiplier]);
67
- return /*#__PURE__*/_jsx(FlashList, {
68
- estimatedItemSize: 36,
69
- removeClippedSubviews: true,
70
- keyboardShouldPersistTaps: "handled",
71
- drawDistance: 50,
72
- ListHeaderComponent: /*#__PURE__*/_jsx(HeaderFooterView, {}),
73
- ListFooterComponent: /*#__PURE__*/_jsx(HeaderFooterView, {}),
74
- ...treeFlashListProps,
75
- data: flattenedFilteredNodes,
76
- renderItem: nodeRenderer
72
+ return /*#__PURE__*/_jsxs(_Fragment, {
73
+ children: [/*#__PURE__*/_jsx(ScrollToNodeHandler, {
74
+ ref: scrollToNodeHandlerRef,
75
+ storeId: storeId,
76
+ flashListRef: flashListRef,
77
+ flattenedFilteredNodes: flattenedFilteredNodes,
78
+ setInitialScrollIndex: setInitialScrollIndex,
79
+ initialScrollNodeID: initialScrollNodeID
80
+ }), /*#__PURE__*/_jsx(FlashList, {
81
+ ref: flashListRef,
82
+ estimatedItemSize: 36,
83
+ initialScrollIndex: initialScrollIndex,
84
+ removeClippedSubviews: true,
85
+ keyboardShouldPersistTaps: "handled",
86
+ drawDistance: 50,
87
+ ListHeaderComponent: /*#__PURE__*/_jsx(HeaderFooterView, {}),
88
+ ListFooterComponent: /*#__PURE__*/_jsx(HeaderFooterView, {}),
89
+ ...treeFlashListProps,
90
+ data: flattenedFilteredNodes,
91
+ renderItem: nodeRenderer
92
+ })]
77
93
  });
78
94
  }
79
95
  ;
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","StyleSheet","TouchableOpacity","FlashList","useTreeViewStore","getFilteredTreeData","getFlattenedTreeData","getInnerMostChildrenIdsInTree","handleToggleExpand","toggleCheckboxes","CheckboxView","CustomExpandCollapseIcon","defaultIndentationMultiplier","useShallow","typedMemo","jsx","_jsx","jsxs","_jsxs","NodeList","_NodeList","props","storeId","treeFlashListProps","checkBoxViewStyleProps","indentationMultiplier","CheckboxComponent","ExpandCollapseIconComponent","ExpandCollapseTouchableComponent","CustomNodeRowComponent","expanded","initialTreeViewData","updateInnerMostChildrenIds","searchKeys","searchText","state","filteredTree","useMemo","trim","toLowerCase","flattenedFilteredNodes","useEffect","updatedInnerMostChildrenIds","nodeRenderer","useCallback","item","Node","node","level","estimatedItemSize","removeClippedSubviews","keyboardShouldPersistTaps","drawDistance","ListHeaderComponent","HeaderFooterView","ListFooterComponent","data","renderItem","style","styles","defaultHeaderFooter","getValue","isChecked","isIndeterminate","_Node","isExpanded","value","has","id","checked","indeterminate","_onToggleExpand","_onCheck","nodeCheckboxAndArrowRow","paddingStart","children","text","name","onValueChange","length","nodeExpandableArrowTouchable","onPress","checkedValue","onCheck","onExpand","create","padding","flex","flexDirection","alignItems","minWidth"],"sourceRoot":"../../../src","sources":["components/NodeList.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","View","StyleSheet","TouchableOpacity","FlashList","useTreeViewStore","getFilteredTreeData","getFlattenedTreeData","getInnerMostChildrenIdsInTree","handleToggleExpand","toggleCheckboxes","CheckboxView","CustomExpandCollapseIcon","defaultIndentationMultiplier","useShallow","typedMemo","ScrollToNodeHandler","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","NodeList","_NodeList","props","storeId","scrollToNodeHandlerRef","initialScrollNodeID","treeFlashListProps","checkBoxViewStyleProps","indentationMultiplier","CheckboxComponent","ExpandCollapseIconComponent","ExpandCollapseTouchableComponent","CustomNodeRowComponent","expanded","initialTreeViewData","updateInnerMostChildrenIds","searchKeys","searchText","state","flashListRef","useRef","initialScrollIndex","setInitialScrollIndex","useState","filteredTree","useMemo","trim","toLowerCase","flattenedFilteredNodes","useEffect","updatedInnerMostChildrenIds","nodeRenderer","useCallback","item","Node","node","level","children","ref","estimatedItemSize","removeClippedSubviews","keyboardShouldPersistTaps","drawDistance","ListHeaderComponent","HeaderFooterView","ListFooterComponent","data","renderItem","style","styles","defaultHeaderFooter","getValue","isChecked","isIndeterminate","_Node","isExpanded","value","has","id","checked","indeterminate","_onToggleExpand","_onCheck","nodeCheckboxAndArrowRow","paddingStart","text","name","onValueChange","length","nodeExpandableArrowTouchable","onPress","checkedValue","onCheck","onExpand","create","padding","flex","flexDirection","alignItems","minWidth"],"sourceRoot":"../../../src","sources":["components/NodeList.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,165 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * ScrollToNodeHandler Component
5
+ *
6
+ * This component provides an imperative handle to scroll to a specified node within a tree view.
7
+ * The scrolling action is orchestrated via a two-step "milestone" mechanism that ensures the target
8
+ * node is both expanded in the tree and that the rendered list reflects this expansion before the scroll
9
+ * is performed.
10
+ *
11
+ * The two key milestones tracked by the `expandAndScrollToNodeQueue` state are:
12
+ * 1. EXPANDED: Indicates that the expansion logic for the target node has been initiated.
13
+ * 2. RENDERED: Indicates that the list has re-rendered with the expanded node included.
14
+ *
15
+ * When the `scrollToNodeID` method is called:
16
+ * - The scroll parameters (target node ID, animation preferences, view offset/position) are stored in a ref.
17
+ * - The target node's expansion is triggered via the `expandNodes` helper.
18
+ * - The `expandAndScrollToNodeQueue` state is updated to mark that expansion has begun.
19
+ *
20
+ * As the component re-renders (e.g., after the node expansion changes the rendered list):
21
+ * - A useEffect monitors changes to the list, and once it detects the expansion has occurred,
22
+ * it updates the queue to include the RENDERED milestone.
23
+ *
24
+ * A layout effect then waits for both conditions to be met:
25
+ * - The target node is confirmed to be in the expanded set.
26
+ * - The `expandAndScrollToNodeQueue` exactly matches the expected milestones ([EXPANDED, RENDERED]).
27
+ *
28
+ * Once both conditions are satisfied:
29
+ * - The index of the target node is determined within the latest flattened node list.
30
+ * - The flash list is scrolled to that index.
31
+ * - The queued scroll parameters and milestone queue are reset.
32
+ *
33
+ * This design ensures that the scroll action is performed only after the target node is fully present
34
+ * in the UI, thus preventing issues with attempting to scroll to an element that does not exist yet.
35
+ */
36
+
37
+ import React from "react";
38
+ import { expandNodes } from "../helpers/expandCollapse.helper";
39
+ import { useTreeViewStore } from "../store/treeView.store";
40
+ import { useShallow } from "zustand/react/shallow";
41
+ import { typedMemo } from "../utils/typedMemo";
42
+ import { isEqual } from "lodash";
43
+ // Enum representing the two milestones needed before scrolling
44
+ var ExpandQueueAction = /*#__PURE__*/function (ExpandQueueAction) {
45
+ ExpandQueueAction[ExpandQueueAction["EXPANDED"] = 0] = "EXPANDED";
46
+ ExpandQueueAction[ExpandQueueAction["RENDERED"] = 1] = "RENDERED";
47
+ return ExpandQueueAction;
48
+ }(ExpandQueueAction || {});
49
+ function _innerScrollToNodeHandler(props, ref) {
50
+ const {
51
+ storeId,
52
+ flashListRef,
53
+ flattenedFilteredNodes,
54
+ setInitialScrollIndex,
55
+ initialScrollNodeID
56
+ } = props;
57
+ const {
58
+ expanded,
59
+ childToParentMap
60
+ } = useTreeViewStore(storeId)(useShallow(state => ({
61
+ expanded: state.expanded,
62
+ childToParentMap: state.childToParentMap
63
+ })));
64
+ React.useImperativeHandle(ref, () => ({
65
+ scrollToNodeID: params => {
66
+ queuedScrollToNodeParams.current = params;
67
+ // Mark that expansion is initiated.
68
+ setExpandAndScrollToNodeQueue([ExpandQueueAction.EXPANDED]);
69
+ // Trigger expansion logic (this may update the store and subsequently re-render the list).
70
+ expandNodes(storeId, [queuedScrollToNodeParams.current.nodeId], !queuedScrollToNodeParams.current.expandScrolledNode);
71
+ }
72
+ }), [storeId]);
73
+
74
+ // Ref to store the scroll parameters for the queued action.
75
+ const queuedScrollToNodeParams = React.useRef(null);
76
+
77
+ // State to track progression: first the expansion is triggered, then the list is rendered.
78
+ const [expandAndScrollToNodeQueue, setExpandAndScrollToNodeQueue] = React.useState([]);
79
+ const latestFlattenedFilteredNodesRef = React.useRef(flattenedFilteredNodes);
80
+
81
+ /* When the rendered node list changes, update the ref.
82
+ If an expansion was triggered, mark that the list is now rendered. */
83
+ React.useEffect(() => {
84
+ setExpandAndScrollToNodeQueue(prevQueue => {
85
+ if (prevQueue.includes(ExpandQueueAction.EXPANDED)) {
86
+ latestFlattenedFilteredNodesRef.current = flattenedFilteredNodes;
87
+ return [ExpandQueueAction.EXPANDED, ExpandQueueAction.RENDERED];
88
+ } else {
89
+ return prevQueue;
90
+ }
91
+ });
92
+ }, [flattenedFilteredNodes]);
93
+
94
+ /* Once the target node is expanded and the list is updated (milestones reached),
95
+ perform the scroll using the latest node list. */
96
+ React.useLayoutEffect(() => {
97
+ if (queuedScrollToNodeParams.current === null) return;
98
+ if (!isEqual(expandAndScrollToNodeQueue, [ExpandQueueAction.EXPANDED, ExpandQueueAction.RENDERED])) {
99
+ return;
100
+ }
101
+
102
+ // If node is set to not expand
103
+ if (!queuedScrollToNodeParams.current.expandScrolledNode) {
104
+ let parentId;
105
+ // Get the parent's id of the node to scroll to
106
+ if (childToParentMap.has(queuedScrollToNodeParams.current.nodeId)) {
107
+ parentId = childToParentMap.get(queuedScrollToNodeParams.current.nodeId);
108
+ }
109
+
110
+ // Ensure if the parent is expanded before proceeding to scroll to the node
111
+ if (parentId && !expanded.has(parentId)) return;
112
+ }
113
+ // If node is set to expand
114
+ else {
115
+ if (!expanded.has(queuedScrollToNodeParams.current.nodeId)) return;
116
+ }
117
+ const {
118
+ nodeId,
119
+ animated,
120
+ viewOffset,
121
+ viewPosition
122
+ } = queuedScrollToNodeParams.current;
123
+ function scrollToItem() {
124
+ const index = latestFlattenedFilteredNodesRef.current.findIndex(item => item.id === nodeId);
125
+ if (index !== -1 && flashListRef.current) {
126
+ // Scroll to the target index.
127
+ flashListRef.current.scrollToIndex({
128
+ index,
129
+ animated,
130
+ viewOffset,
131
+ viewPosition
132
+ });
133
+ } else {
134
+ if (__DEV__) {
135
+ console.info("Cannot find the item of the mentioned id to scroll in the rendered tree view list data!");
136
+ }
137
+ }
138
+
139
+ // Clear the queued parameters and reset the expansion/render queue.
140
+ queuedScrollToNodeParams.current = null;
141
+ setExpandAndScrollToNodeQueue([]);
142
+ }
143
+ scrollToItem();
144
+ }, [childToParentMap, expanded, flashListRef, expandAndScrollToNodeQueue]);
145
+
146
+ ////////////////////////////// Handle Initial Scroll /////////////////////////////
147
+ /* On first render, if an initial scroll target is provided, determine its index.
148
+ This is done only once. */
149
+ const initialScrollDone = React.useRef(false);
150
+ React.useLayoutEffect(() => {
151
+ if (initialScrollDone.current) return;
152
+ const index = flattenedFilteredNodes.findIndex(item => item.id === initialScrollNodeID);
153
+ setInitialScrollIndex(index);
154
+ if (index !== -1) {
155
+ initialScrollDone.current = true;
156
+ }
157
+ // eslint-disable-next-line react-hooks/exhaustive-deps
158
+ }, [flattenedFilteredNodes, initialScrollNodeID]);
159
+ /////////////////////////////////////////////////////////////////////////////////
160
+
161
+ return null;
162
+ }
163
+ const _ScrollToNodeHandler = /*#__PURE__*/React.forwardRef(_innerScrollToNodeHandler);
164
+ export const ScrollToNodeHandler = typedMemo(_ScrollToNodeHandler);
165
+ //# sourceMappingURL=ScrollToNodeHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","expandNodes","useTreeViewStore","useShallow","typedMemo","isEqual","ExpandQueueAction","_innerScrollToNodeHandler","props","ref","storeId","flashListRef","flattenedFilteredNodes","setInitialScrollIndex","initialScrollNodeID","expanded","childToParentMap","state","useImperativeHandle","scrollToNodeID","params","queuedScrollToNodeParams","current","setExpandAndScrollToNodeQueue","EXPANDED","nodeId","expandScrolledNode","useRef","expandAndScrollToNodeQueue","useState","latestFlattenedFilteredNodesRef","useEffect","prevQueue","includes","RENDERED","useLayoutEffect","parentId","has","get","animated","viewOffset","viewPosition","scrollToItem","index","findIndex","item","id","scrollToIndex","__DEV__","console","info","initialScrollDone","_ScrollToNodeHandler","forwardRef","ScrollToNodeHandler"],"sourceRoot":"../../../src","sources":["handlers/ScrollToNodeHandler.tsx"],"mappings":"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","ignoreList":[]}
@@ -75,8 +75,10 @@ export function collapseAll(storeId) {
75
75
  * Expand tree nodes of given ids. If the id is of a child, it also expands
76
76
  * its ancestors up to the root.
77
77
  * @param ids - Ids of nodes to expand.
78
+ * @param _doNotExpandToShowChildren - If true, the function will not expand the ids to prevent
79
+ * from showing their children.
78
80
  */
79
- export function expandNodes(storeId, ids) {
81
+ export function expandNodes(storeId, ids, _doNotExpandToShowChildren = false) {
80
82
  const treeViewStore = getTreeViewStore(storeId);
81
83
  const {
82
84
  expanded,
@@ -86,6 +88,10 @@ export function expandNodes(storeId, ids) {
86
88
  const newExpanded = new Set(expanded);
87
89
  const processedIds = new Set();
88
90
  ids.forEach(id => {
91
+ if (_doNotExpandToShowChildren) {
92
+ const parentId = childToParentMap.get(id);
93
+ if (parentId === undefined) return;else id = parentId;
94
+ }
89
95
  let currentId = id;
90
96
  while (currentId && !processedIds.has(currentId)) {
91
97
  newExpanded.add(currentId);
@@ -1 +1 @@
1
- {"version":3,"names":["getTreeViewStore","handleToggleExpand","storeId","id","treeViewStore","expanded","updateExpanded","nodeMap","getState","newExpanded","Set","has","delete","stack","length","currentId","pop","node","get","children","child","push","add","expandAll","keys","collapseAll","expandNodes","ids","childToParentMap","processedIds","forEach","collapseNodes","deleteChildrenFromExpanded","nodeId"],"sourceRoot":"../../../src","sources":["helpers/expandCollapse.helper.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["getTreeViewStore","handleToggleExpand","storeId","id","treeViewStore","expanded","updateExpanded","nodeMap","getState","newExpanded","Set","has","delete","stack","length","currentId","pop","node","get","children","child","push","add","expandAll","keys","collapseAll","expandNodes","ids","_doNotExpandToShowChildren","childToParentMap","processedIds","forEach","parentId","undefined","collapseNodes","deleteChildrenFromExpanded","nodeId"],"sourceRoot":"../../../src","sources":["helpers/expandCollapse.helper.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"TreeView.d.ts","sourceRoot":"","sources":["../../src/TreeView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAEV,aAAa,EACb,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAqBhC,iBAAS,cAAc,CAAC,EAAE,EAAE,KAAK,EAAE,aAAa,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,qBAiL7F;AAKD,eAAO,MAAM,QAAQ,GAJkC,EAAE,SAChD,aAAa,CAAC,EAAE,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAA;CAAE,KACrE,UAAU,CAAC,OAAO,cAAc,CAEyB,CAAC"}
1
+ {"version":3,"file":"TreeView.d.ts","sourceRoot":"","sources":["../../src/TreeView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAEX,aAAa,EACb,WAAW,EACX,MAAM,wBAAwB,CAAC;AAyBhC,iBAAS,cAAc,CAAC,EAAE,EACzB,KAAK,EAAE,aAAa,CAAC,EAAE,CAAC,EACxB,GAAG,EAAE,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,qBAwMxC;AAMD,eAAO,MAAM,QAAQ,GAJkC,EAAE,SACjD,aAAa,CAAC,EAAE,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;CAAE,KACrE,UAAU,CAAC,OAAO,cAAc,CAEyB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"NodeList.d.ts","sourceRoot":"","sources":["../../../src/components/NodeList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,OAAO,KAAK,EAGR,aAAa,EAEhB,MAAM,yBAAyB,CAAC;AAgBjC,QAAA,MAAM,QAAQ,kBAAuB,CAAC;AACtC,eAAe,QAAQ,CAAC;AAExB,iBAAS,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,aAAa,CAAC,EAAE,CAAC,qBA6F9C"}
1
+ {"version":3,"file":"NodeList.d.ts","sourceRoot":"","sources":["../../../src/components/NodeList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,OAAO,KAAK,EAGR,aAAa,EAEhB,MAAM,yBAAyB,CAAC;AAiBjC,QAAA,MAAM,QAAQ,kBAAuB,CAAC;AACtC,eAAe,QAAQ,CAAC;AAExB,iBAAS,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,aAAa,CAAC,EAAE,CAAC,qBAgH9C"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * ScrollToNodeHandler Component
3
+ *
4
+ * This component provides an imperative handle to scroll to a specified node within a tree view.
5
+ * The scrolling action is orchestrated via a two-step "milestone" mechanism that ensures the target
6
+ * node is both expanded in the tree and that the rendered list reflects this expansion before the scroll
7
+ * is performed.
8
+ *
9
+ * The two key milestones tracked by the `expandAndScrollToNodeQueue` state are:
10
+ * 1. EXPANDED: Indicates that the expansion logic for the target node has been initiated.
11
+ * 2. RENDERED: Indicates that the list has re-rendered with the expanded node included.
12
+ *
13
+ * When the `scrollToNodeID` method is called:
14
+ * - The scroll parameters (target node ID, animation preferences, view offset/position) are stored in a ref.
15
+ * - The target node's expansion is triggered via the `expandNodes` helper.
16
+ * - The `expandAndScrollToNodeQueue` state is updated to mark that expansion has begun.
17
+ *
18
+ * As the component re-renders (e.g., after the node expansion changes the rendered list):
19
+ * - A useEffect monitors changes to the list, and once it detects the expansion has occurred,
20
+ * it updates the queue to include the RENDERED milestone.
21
+ *
22
+ * A layout effect then waits for both conditions to be met:
23
+ * - The target node is confirmed to be in the expanded set.
24
+ * - The `expandAndScrollToNodeQueue` exactly matches the expected milestones ([EXPANDED, RENDERED]).
25
+ *
26
+ * Once both conditions are satisfied:
27
+ * - The index of the target node is determined within the latest flattened node list.
28
+ * - The flash list is scrolled to that index.
29
+ * - The queued scroll parameters and milestone queue are reset.
30
+ *
31
+ * This design ensures that the scroll action is performed only after the target node is fully present
32
+ * in the UI, thus preventing issues with attempting to scroll to an element that does not exist yet.
33
+ */
34
+ import React from "react";
35
+ import { __FlattenedTreeNode__ } from "../types/treeView.types";
36
+ interface Props<ID> {
37
+ storeId: string;
38
+ flashListRef: React.MutableRefObject<any>;
39
+ flattenedFilteredNodes: __FlattenedTreeNode__<ID>[];
40
+ setInitialScrollIndex: React.Dispatch<React.SetStateAction<number>>;
41
+ initialScrollNodeID: ID | undefined;
42
+ }
43
+ export interface ScrollToNodeParams<ID> {
44
+ nodeId: ID;
45
+ expandScrolledNode?: boolean;
46
+ animated?: boolean;
47
+ viewOffset?: number;
48
+ viewPosition?: number;
49
+ }
50
+ export interface ScrollToNodeHandlerRef<ID> {
51
+ scrollToNodeID: (params: ScrollToNodeParams<ID>) => void;
52
+ }
53
+ declare function _innerScrollToNodeHandler<ID>(props: Props<ID>, ref: React.ForwardedRef<ScrollToNodeHandlerRef<ID>>): null;
54
+ export declare const ScrollToNodeHandler: <ID>(props: Props<ID> & {
55
+ ref?: React.ForwardedRef<ScrollToNodeHandlerRef<ID>>;
56
+ }) => ReturnType<typeof _innerScrollToNodeHandler>;
57
+ export {};
58
+ //# sourceMappingURL=ScrollToNodeHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScrollToNodeHandler.d.ts","sourceRoot":"","sources":["../../../src/handlers/ScrollToNodeHandler.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAIhE,UAAU,KAAK,CAAC,EAAE;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC1C,sBAAsB,EAAE,qBAAqB,CAAC,EAAE,CAAC,EAAE,CAAC;IACpD,qBAAqB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IACpE,mBAAmB,EAAE,EAAE,GAAG,SAAS,CAAC;CACrC;AAED,MAAM,WAAW,kBAAkB,CAAC,EAAE;IACpC,MAAM,EAAE,EAAE,CAAC;IACX,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAQD,MAAM,WAAW,sBAAsB,CAAC,EAAE;IACxC,cAAc,EAAE,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;CAC1D;AAED,iBAAS,yBAAyB,CAAC,EAAE,EACnC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,EAChB,GAAG,EAAE,KAAK,CAAC,YAAY,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC,QA8IpD;AAMD,eAAO,MAAM,mBAAmB,GAJ6C,EAAE,SACtE,KAAK,CAAC,EAAE,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC,CAAC;CAAE,KACzE,UAAU,CAAC,OAAO,yBAAyB,CAIzB,CAAC"}
@@ -19,8 +19,10 @@ export declare function collapseAll(storeId: string): void;
19
19
  * Expand tree nodes of given ids. If the id is of a child, it also expands
20
20
  * its ancestors up to the root.
21
21
  * @param ids - Ids of nodes to expand.
22
+ * @param _doNotExpandToShowChildren - If true, the function will not expand the ids to prevent
23
+ * from showing their children.
22
24
  */
23
- export declare function expandNodes<ID>(storeId: string, ids: ID[]): void;
25
+ export declare function expandNodes<ID>(storeId: string, ids: ID[], _doNotExpandToShowChildren?: boolean): void;
24
26
  /**
25
27
  * Collapse tree nodes of given ids. If the id is of a parent, it also collapses
26
28
  * its descendants.
@@ -1 +1 @@
1
- {"version":3,"file":"expandCollapse.helper.d.ts","sourceRoot":"","sources":["../../../src/helpers/expandCollapse.helper.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,QAoC7D;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,QAMxC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,QAK1C;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,QAgBzD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,QA6B3D"}
1
+ {"version":3,"file":"expandCollapse.helper.d.ts","sourceRoot":"","sources":["../../../src/helpers/expandCollapse.helper.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,QAoC7D;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,QAMxC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,QAK1C;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAC1B,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,EAAE,EAAE,EACT,0BAA0B,GAAE,OAAe,QA0B9C;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,QA6B3D"}
@@ -1,6 +1,7 @@
1
1
  import type { StyleProp, TextProps, TouchableOpacityProps, ViewStyle } from "react-native";
2
2
  import type { FlashListProps } from "@shopify/flash-list";
3
3
  import { type Props as RNPaperCheckboxAndroidProps } from 'react-native-paper/src/components/Checkbox/CheckboxAndroid';
4
+ import { ScrollToNodeHandlerRef, ScrollToNodeParams } from "../handlers/ScrollToNodeHandler";
4
5
  export type CheckboxValueType = boolean | 'indeterminate';
5
6
  export interface ExpandIconProps {
6
7
  isExpanded: boolean;
@@ -38,9 +39,11 @@ export interface NodeProps<ID> extends TreeItemCustomizations<ID> {
38
39
  }
39
40
  export interface NodeListProps<ID> extends TreeItemCustomizations<ID> {
40
41
  treeFlashListProps?: TreeFlatListProps;
42
+ scrollToNodeHandlerRef: React.RefObject<ScrollToNodeHandlerRef<ID>>;
43
+ initialScrollNodeID?: ID;
41
44
  storeId: string;
42
45
  }
43
- export interface TreeViewProps<ID = string> extends Omit<NodeListProps<ID>, "storeId"> {
46
+ export interface TreeViewProps<ID = string> extends Omit<NodeListProps<ID>, "storeId" | "scrollToNodeHandlerRef"> {
44
47
  data: TreeNode<ID>[];
45
48
  onCheck?: (checkedIds: ID[], indeterminateIds: ID[]) => void;
46
49
  onExpand?: (expandedIds: ID[]) => void;
@@ -74,6 +77,8 @@ export interface TreeViewRef<ID = string> {
74
77
  selectNodes: (ids: ID[]) => void;
75
78
  unselectNodes: (ids: ID[]) => void;
76
79
  setSearchText: (searchText: string, searchKeys?: string[]) => void;
80
+ scrollToNodeID: (scrollToNodeParams: ScrollToNodeParams<ID>) => void;
81
+ getChildToParentMap: () => Map<ID, ID>;
77
82
  }
78
83
  export interface SelectionPropagation {
79
84
  toChildren?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"treeView.types.d.ts","sourceRoot":"","sources":["../../../src/types/treeView.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"treeView.types.d.ts","sourceRoot":"","sources":["../../../src/types/treeView.types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-tree-multi-select",
3
- "version": "1.8.1",
3
+ "version": "1.9.0-beta.1",
4
4
  "description": "A super-fast, customizable tree view component for React Native with multi-selection, checkboxes, and search filtering capabilities.",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",