pixel-react 1.19.9 → 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.
|
@@ -80,20 +80,48 @@ export const getTreeDetails = (action, oldData, newData, sourceId, deletedIds) =
|
|
|
80
80
|
throw new Error('Tree data list is empty, cannot determine root.');
|
|
81
81
|
}
|
|
82
82
|
root = tempNewData[0];
|
|
83
|
-
const newNodesList = tempNewData.slice(1);
|
|
84
83
|
// ----------------------------------------------------------------
|
|
85
|
-
// STEP 1:
|
|
84
|
+
// STEP 1: Smart Merging (Handles ID Changes) & Build Order Map
|
|
86
85
|
// ----------------------------------------------------------------
|
|
87
86
|
const allNodesMap = new Map();
|
|
87
|
+
const orderMap = new Map();
|
|
88
88
|
const deletedKeys = new Set(deletedIds || []);
|
|
89
|
+
const consumedNewKeys = new Set();
|
|
89
90
|
if (action === 'delete' && sourceId) {
|
|
90
91
|
deletedKeys.add(sourceId);
|
|
91
92
|
}
|
|
92
|
-
// Add
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
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);
|
|
114
|
+
}
|
|
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
|
+
// ----------------------------------------------------------------
|
|
97
125
|
let deleting = true;
|
|
98
126
|
while (deleting) {
|
|
99
127
|
deleting = false;
|
|
@@ -107,33 +135,36 @@ export const getTreeDetails = (action, oldData, newData, sourceId, deletedIds) =
|
|
|
107
135
|
}
|
|
108
136
|
}
|
|
109
137
|
// ----------------------------------------------------------------
|
|
110
|
-
// STEP 2: Inject New/Cloned Data
|
|
138
|
+
// STEP 2: Inject New/Cloned Data (Anchor to tempNewData Order)
|
|
111
139
|
// ----------------------------------------------------------------
|
|
112
|
-
//
|
|
113
|
-
|
|
114
|
-
|
|
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;
|
|
115
146
|
}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
oldData.forEach((node, index) => orderMap.set(node.key, index));
|
|
122
|
-
// Ensure new clones appear at the end of their respective parent folders
|
|
123
|
-
const baseNewIndex = oldData.length;
|
|
124
|
-
newNodesList.forEach((node, index) => {
|
|
125
|
-
if (!orderMap.has(node.key)) {
|
|
126
|
-
orderMap.set(node.key, baseNewIndex + index);
|
|
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
|
|
127
152
|
}
|
|
128
|
-
|
|
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);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
129
161
|
// ----------------------------------------------------------------
|
|
130
|
-
// STEP 4: Rebuild the Hierarchy
|
|
162
|
+
// STEP 3 & 4: Rebuild the Hierarchy & Sort
|
|
131
163
|
// ----------------------------------------------------------------
|
|
132
164
|
const childrenMap = new Map();
|
|
133
165
|
const topLevelNodes = [];
|
|
134
166
|
for (const node of allNodesMap.values()) {
|
|
135
167
|
const parentId = node.parentId;
|
|
136
|
-
// If it has no parent, or its parent isn't in our tree, it's a top-level node
|
|
137
168
|
if (!parentId || !allNodesMap.has(parentId)) {
|
|
138
169
|
topLevelNodes.push(node);
|
|
139
170
|
}
|
|
@@ -144,7 +175,6 @@ export const getTreeDetails = (action, oldData, newData, sourceId, deletedIds) =
|
|
|
144
175
|
childrenMap.get(parentId).push(node);
|
|
145
176
|
}
|
|
146
177
|
}
|
|
147
|
-
// Sort everything to maintain perfect tree order
|
|
148
178
|
const sortByOriginalOrder = (a, b) => {
|
|
149
179
|
const indexA = orderMap.get(a.key) ?? 0;
|
|
150
180
|
const indexB = orderMap.get(b.key) ?? 0;
|
|
@@ -163,12 +193,15 @@ export const getTreeDetails = (action, oldData, newData, sourceId, deletedIds) =
|
|
|
163
193
|
flattenedList.push(node);
|
|
164
194
|
const children = childrenMap.get(node.key);
|
|
165
195
|
if (children && children.length > 0) {
|
|
166
|
-
flattenDFS(children);
|
|
196
|
+
flattenDFS(children);
|
|
167
197
|
}
|
|
168
198
|
}
|
|
169
199
|
};
|
|
170
200
|
flattenDFS(topLevelNodes);
|
|
171
|
-
const filteredList = flattenedList
|
|
201
|
+
const filteredList = flattenedList
|
|
202
|
+
.filter((node) => node.key)
|
|
203
|
+
.filter((node) => node.hierarchy !== 0);
|
|
204
|
+
console.log(filteredList, 'filteredList');
|
|
172
205
|
treeDataList = filteredList;
|
|
173
206
|
break;
|
|
174
207
|
}
|
|
@@ -177,7 +210,7 @@ export const getTreeDetails = (action, oldData, newData, sourceId, deletedIds) =
|
|
|
177
210
|
}
|
|
178
211
|
if (checkEmpty(treeDataList) &&
|
|
179
212
|
!['start', 'delete', 'hide', 'refresh'].includes(action)) {
|
|
180
|
-
|
|
213
|
+
console.warn('Tree data list is empty. Returning default state.');
|
|
181
214
|
}
|
|
182
215
|
const firstNode = treeDataList[0] || root;
|
|
183
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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"}
|