pixel-react 1.19.8 → 1.20.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.
|
@@ -76,70 +76,133 @@ export const getTreeDetails = (action, oldData, newData, sourceId, deletedIds) =
|
|
|
76
76
|
case 'create':
|
|
77
77
|
case 'refresh':
|
|
78
78
|
case 'delete': {
|
|
79
|
-
if (
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
//
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
}
|
|
79
|
+
if (checkEmpty(tempNewData)) {
|
|
80
|
+
throw new Error('Tree data list is empty, cannot determine root.');
|
|
81
|
+
}
|
|
82
|
+
root = tempNewData[0];
|
|
83
|
+
// ----------------------------------------------------------------
|
|
84
|
+
// STEP 1: Smart Merging (Handles ID Changes) & Build Order Map
|
|
85
|
+
// ----------------------------------------------------------------
|
|
86
|
+
const allNodesMap = new Map();
|
|
87
|
+
const orderMap = new Map();
|
|
88
|
+
const deletedKeys = new Set(deletedIds || []);
|
|
89
|
+
const consumedNewKeys = new Set();
|
|
90
|
+
if (action === 'delete' && sourceId) {
|
|
91
|
+
deletedKeys.add(sourceId);
|
|
92
|
+
}
|
|
93
|
+
// Add old data, but check for updates using Key OR (ParentId + Name)
|
|
94
|
+
oldData.forEach((node, index) => {
|
|
95
|
+
const updatedNode = tempNewData.find((newNode) => newNode.key === node.key ||
|
|
96
|
+
(newNode.parentId === node.parentId &&
|
|
97
|
+
newNode.name === node.name &&
|
|
98
|
+
node.type === newNode.type));
|
|
99
|
+
if (updatedNode) {
|
|
100
|
+
// 🟢 We found a match! Add the NEW version using the NEW key.
|
|
101
|
+
allNodesMap.set(updatedNode.key, {
|
|
102
|
+
...updatedNode,
|
|
103
|
+
// Optional: Preserve UI states like 'expanded' from the old node here if needed
|
|
104
|
+
expanded: node.expanded,
|
|
105
|
+
hide: node.hide,
|
|
106
|
+
});
|
|
107
|
+
consumedNewKeys.add(updatedNode.key);
|
|
108
|
+
orderMap.set(updatedNode.key, index); // Map new key to old index so it stays in place!
|
|
109
|
+
// 🚨 CRITICAL: If the ID changed, mark the old ID as deleted!
|
|
110
|
+
// This ensures old child nodes (pointing to the old ID) are cascade-deleted
|
|
111
|
+
// and replaced by the newly fetched children in tempNewData.
|
|
112
|
+
if (updatedNode.key !== node.key) {
|
|
113
|
+
deletedKeys.add(node.key);
|
|
115
114
|
}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
// 🟡 It wasn't in the new data, so just keep the OLD version.
|
|
118
|
+
allNodesMap.set(node.key, { ...node });
|
|
119
|
+
orderMap.set(node.key, index);
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
// ----------------------------------------------------------------
|
|
123
|
+
// STEP 1.5: Process Deletions (Deep Cascade)
|
|
124
|
+
// ----------------------------------------------------------------
|
|
125
|
+
let deleting = true;
|
|
126
|
+
while (deleting) {
|
|
127
|
+
deleting = false;
|
|
128
|
+
for (const [key, node] of allNodesMap.entries()) {
|
|
129
|
+
if (deletedKeys.has(key) ||
|
|
130
|
+
(node.parentId && deletedKeys.has(node.parentId))) {
|
|
131
|
+
deletedKeys.add(key);
|
|
132
|
+
allNodesMap.delete(key);
|
|
133
|
+
deleting = true;
|
|
130
134
|
}
|
|
131
135
|
}
|
|
132
|
-
|
|
133
|
-
|
|
136
|
+
}
|
|
137
|
+
// ----------------------------------------------------------------
|
|
138
|
+
// STEP 2: Inject New/Cloned Data (Anchor to tempNewData Order)
|
|
139
|
+
// ----------------------------------------------------------------
|
|
140
|
+
let lastAnchorIndex = oldData.length; // Default to bottom if no anchor is found
|
|
141
|
+
let fractionalOffset = 0;
|
|
142
|
+
// Find the first known anchor in tempNewData to handle if new nodes are prepended
|
|
143
|
+
const firstUpdatedNode = tempNewData.find((n) => consumedNewKeys.has(n.key));
|
|
144
|
+
if (firstUpdatedNode) {
|
|
145
|
+
lastAnchorIndex = (orderMap.get(firstUpdatedNode.key) ?? 1) - 1;
|
|
146
|
+
}
|
|
147
|
+
for (const newNode of tempNewData) {
|
|
148
|
+
if (consumedNewKeys.has(newNode.key)) {
|
|
149
|
+
// 🟢 This is a known, updated node. Update our anchor pointer to its exact old index!
|
|
150
|
+
lastAnchorIndex = orderMap.get(newNode.key) ?? lastAnchorIndex;
|
|
151
|
+
fractionalOffset = 0; // Reset fraction for the next new node
|
|
134
152
|
}
|
|
135
|
-
if (
|
|
136
|
-
|
|
153
|
+
else if (!allNodesMap.has(newNode.key)) {
|
|
154
|
+
// 🔵 This is a BRAND NEW node (like a clone).
|
|
155
|
+
// Inject it immediately after the last known anchor using a decimal!
|
|
156
|
+
allNodesMap.set(newNode.key, { ...newNode });
|
|
157
|
+
fractionalOffset += 0.001;
|
|
158
|
+
orderMap.set(newNode.key, lastAnchorIndex + fractionalOffset);
|
|
137
159
|
}
|
|
138
|
-
treeDataList = mergedList;
|
|
139
160
|
}
|
|
140
|
-
|
|
141
|
-
|
|
161
|
+
// ----------------------------------------------------------------
|
|
162
|
+
// STEP 3 & 4: Rebuild the Hierarchy & Sort
|
|
163
|
+
// ----------------------------------------------------------------
|
|
164
|
+
const childrenMap = new Map();
|
|
165
|
+
const topLevelNodes = [];
|
|
166
|
+
for (const node of allNodesMap.values()) {
|
|
167
|
+
const parentId = node.parentId;
|
|
168
|
+
if (!parentId || !allNodesMap.has(parentId)) {
|
|
169
|
+
topLevelNodes.push(node);
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
if (!childrenMap.has(parentId)) {
|
|
173
|
+
childrenMap.set(parentId, []);
|
|
174
|
+
}
|
|
175
|
+
childrenMap.get(parentId).push(node);
|
|
176
|
+
}
|
|
142
177
|
}
|
|
178
|
+
const sortByOriginalOrder = (a, b) => {
|
|
179
|
+
const indexA = orderMap.get(a.key) ?? 0;
|
|
180
|
+
const indexB = orderMap.get(b.key) ?? 0;
|
|
181
|
+
return indexA - indexB;
|
|
182
|
+
};
|
|
183
|
+
topLevelNodes.sort(sortByOriginalOrder);
|
|
184
|
+
for (const children of childrenMap.values()) {
|
|
185
|
+
children.sort(sortByOriginalOrder);
|
|
186
|
+
}
|
|
187
|
+
// ----------------------------------------------------------------
|
|
188
|
+
// STEP 5: Flatten Back to Array (Depth-First Search)
|
|
189
|
+
// ----------------------------------------------------------------
|
|
190
|
+
const flattenedList = [];
|
|
191
|
+
const flattenDFS = (nodes) => {
|
|
192
|
+
for (const node of nodes) {
|
|
193
|
+
flattenedList.push(node);
|
|
194
|
+
const children = childrenMap.get(node.key);
|
|
195
|
+
if (children && children.length > 0) {
|
|
196
|
+
flattenDFS(children);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
};
|
|
200
|
+
flattenDFS(topLevelNodes);
|
|
201
|
+
const filteredList = flattenedList
|
|
202
|
+
.filter((node) => node.key)
|
|
203
|
+
.filter((node) => node.hierarchy !== 0);
|
|
204
|
+
console.log(filteredList, 'filteredList');
|
|
205
|
+
treeDataList = filteredList;
|
|
143
206
|
break;
|
|
144
207
|
}
|
|
145
208
|
default:
|
|
@@ -147,7 +210,7 @@ export const getTreeDetails = (action, oldData, newData, sourceId, deletedIds) =
|
|
|
147
210
|
}
|
|
148
211
|
if (checkEmpty(treeDataList) &&
|
|
149
212
|
!['start', 'delete', 'hide', 'refresh'].includes(action)) {
|
|
150
|
-
|
|
213
|
+
console.warn('Tree data list is empty. Returning default state.');
|
|
151
214
|
}
|
|
152
215
|
const firstNode = treeDataList[0] || root;
|
|
153
216
|
const lastNode = treeDataList[treeDataList.length - 1] || {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTreeDetails.js","sourceRoot":"","sources":["../../../src/utils/getTreeDetails/getTreeDetails.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"getTreeDetails.js","sourceRoot":"","sources":["../../../src/utils/getTreeDetails/getTreeDetails.ts"],"names":[],"mappings":"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"}
|