@bindu-dashing/dam-solution-v2 5.8.26 → 5.8.28
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.
|
@@ -111,6 +111,33 @@ function FolderTree({ currentRootId, expandedKeys, selectedKeys, handleExpand, s
|
|
|
111
111
|
globalSearchValue: "",
|
|
112
112
|
});
|
|
113
113
|
const { showConfirmationModal, showEditModal, selectedFolder, loading, isSorting, enableDrag, sortMode, sortOrder, tempFolders, parentFolder, globalSearchValue, } = state;
|
|
114
|
+
// Fetch children for a specific folder and insert them into the tree (same logic as fetchFolders)
|
|
115
|
+
const fetchFolderChildren = (folderId) => __awaiter(this, void 0, void 0, function* () {
|
|
116
|
+
try {
|
|
117
|
+
setState((prevState) => {
|
|
118
|
+
return Object.assign(Object.assign({}, prevState), { loading: true });
|
|
119
|
+
});
|
|
120
|
+
const response = yield api.get(`${FETCH_FOLDER_URL.replace(":folderId", folderId)}?isPagination=false&includeFiles=false&includeSubFoldersCount=true&fetchMainFolders=true&globalSearch=`);
|
|
121
|
+
const newFolders = get(response, "data.folders", []);
|
|
122
|
+
// Simply use the same logic as fetchFolders - sort and insert recursively
|
|
123
|
+
const sorted = sortFoldersRecursively(newFolders, "name", sortOrder);
|
|
124
|
+
const newChildren = insertSubfoldersRecursively(sorted);
|
|
125
|
+
console.log('## Fetching children for folder:', folderId, 'New children:', newChildren);
|
|
126
|
+
// Insert the fetched children into the clicked folder in the tree
|
|
127
|
+
setFolders((prevFolders) => {
|
|
128
|
+
return insertSubfolders(prevFolders, folderId, newChildren);
|
|
129
|
+
});
|
|
130
|
+
setState((prevState) => {
|
|
131
|
+
return Object.assign(Object.assign({}, prevState), { loading: false });
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
showNotification(get(error, "message", SOMETHING_WENT_WRONG), NotificationStatus.ERROR);
|
|
136
|
+
setState((prevState) => {
|
|
137
|
+
return Object.assign(Object.assign({}, prevState), { loading: false });
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
});
|
|
114
141
|
const fetchFolders = (fid) => __awaiter(this, void 0, void 0, function* () {
|
|
115
142
|
try {
|
|
116
143
|
setState((prevState) => {
|
|
@@ -124,18 +151,11 @@ function FolderTree({ currentRootId, expandedKeys, selectedKeys, handleExpand, s
|
|
|
124
151
|
setFolders(sortFoldersRecursively(newFolders, "name", sortOrder));
|
|
125
152
|
}
|
|
126
153
|
else {
|
|
127
|
-
//
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
// children: insertSubfoldersRecursively(sorted),
|
|
133
|
-
// }]);
|
|
134
|
-
setFolders((prev) => {
|
|
135
|
-
const cloned = cloneDeep(prev);
|
|
136
|
-
const sorted = sortFoldersRecursively(newFolders, "name", sortOrder);
|
|
137
|
-
return insertSubfolders(cloned, fid, sorted);
|
|
138
|
-
});
|
|
154
|
+
// Simply use folder info from API response and newFolders as children
|
|
155
|
+
const sorted = sortFoldersRecursively(newFolders, "name", sortOrder);
|
|
156
|
+
console.log('## Folder info:', folderInfo, 'New children:', insertSubfoldersRecursively(sorted));
|
|
157
|
+
const newChildren = insertSubfoldersRecursively(sorted);
|
|
158
|
+
setFolders([Object.assign(Object.assign({}, folderInfo), { children: newChildren })]);
|
|
139
159
|
}
|
|
140
160
|
setState((prevState) => {
|
|
141
161
|
return Object.assign(Object.assign({}, prevState), { parentFolder: get(response, "data.folder", {}), loading: false, globalSearchValue: globalSearch || "" });
|
|
@@ -238,6 +258,19 @@ function FolderTree({ currentRootId, expandedKeys, selectedKeys, handleExpand, s
|
|
|
238
258
|
return get(item, "_id") !== rootFolderId;
|
|
239
259
|
});
|
|
240
260
|
}, [parentFolder]);
|
|
261
|
+
// Wrapper for handleExpand that also fetches children when a folder is expanded
|
|
262
|
+
const handleExpandWithFetch = (keys) => {
|
|
263
|
+
handleExpand(keys);
|
|
264
|
+
const newExpanded = map(keys, (k) => k.toString());
|
|
265
|
+
const currentExpanded = isArray(expandedKeys) ? expandedKeys : [expandedKeys].filter(Boolean);
|
|
266
|
+
const newlyExpanded = newExpanded.filter(id => !currentExpanded.includes(id));
|
|
267
|
+
// Fetch children for newly expanded folders using the same simple logic
|
|
268
|
+
newlyExpanded.forEach(expandedId => {
|
|
269
|
+
if (expandedId !== rootFolderId && expandedId !== currentRootId) {
|
|
270
|
+
fetchFolderChildren(expandedId);
|
|
271
|
+
}
|
|
272
|
+
});
|
|
273
|
+
};
|
|
241
274
|
const handleSelect = (keys) => {
|
|
242
275
|
// console.log("keys", keys);
|
|
243
276
|
const selected = map(keys, (k) => k.toString());
|
|
@@ -247,6 +280,10 @@ function FolderTree({ currentRootId, expandedKeys, selectedKeys, handleExpand, s
|
|
|
247
280
|
const selectedId = selected[get(selected, "length", 0) - 1];
|
|
248
281
|
// navigate(SUBFOLDERS_SCREEN.replace(":folderId", selectedId));
|
|
249
282
|
console.log('## selectedId', selectedId);
|
|
283
|
+
// If the selected folder is not the root folder, fetch its children
|
|
284
|
+
if (selectedId !== rootFolderId && selectedId !== currentRootId) {
|
|
285
|
+
fetchFolderChildren(selectedId);
|
|
286
|
+
}
|
|
250
287
|
}
|
|
251
288
|
};
|
|
252
289
|
useEffect(() => {
|
|
@@ -371,6 +408,6 @@ function FolderTree({ currentRootId, expandedKeys, selectedKeys, handleExpand, s
|
|
|
371
408
|
}, icon: sortOrder == "desc" ? (_jsx(AiOutlineSortAscendingbtn, { className: "md-lib-cursor-pointer" })) : (_jsx(AiOutlineSortDescendingbtn, { className: "md-lib-cursor-pointer" })) }) })), sortMode === "custom" && !enableDrag && !globalSearch && (_jsx(Tooltip, { title: "Enable Drag", children: _jsx(Button, { icon: _jsx(GrSortIcon, {}), onClick: toggleEnableDrag }) })), enableDrag && (_jsxs("div", { className: "md-lib-flex md-lib-gap-2 md-lib-ml-2", children: [_jsx(Button, { type: "primary", onClick: handleSave, loading: isSorting, children: "Save" }), _jsx(Button, { onClick: handleCancel, children: "Cancel" })] })), loading && _jsx(CustomLoader, {})] }), _jsx(DirectoryTree, { treeData: getFoldersTree(sortMode === "custom" ? tempFolders : folders), draggable: {
|
|
372
409
|
icon: true,
|
|
373
410
|
nodeDraggable: (node) => sortMode === "custom" && enableDrag ? !(node === null || node === void 0 ? void 0 : node.parentId) : false,
|
|
374
|
-
}, onDrop: sortMode === "custom" && enableDrag ? onDrop : undefined, blockNode: true, showIcon: false, selectable: !enableDrag, selectedKeys: isArray(selectedKeys) ? selectedKeys : [selectedKeys], expandedKeys: expandedKeys, onSelect: handleSelect, onExpand:
|
|
411
|
+
}, onDrop: sortMode === "custom" && enableDrag ? onDrop : undefined, blockNode: true, showIcon: false, selectable: !enableDrag, selectedKeys: isArray(selectedKeys) ? selectedKeys : [selectedKeys], expandedKeys: expandedKeys, onSelect: handleSelect, onExpand: handleExpandWithFetch })] }), showConfirmationModal && (_jsx(DeleteConfirmationModal, { showDeleteModal: showConfirmationModal, toggleDeleteModal: toggleDeleteModal, okText: DELETE_OK_TEXT, description: DELETE_CONFIRMATION_MESSAGE.replace(":action", "delete").replace(":entity", get(selectedFolder, "name", "this folder")), onOk: onDeleteFolder, loading: loading })), showEditModal && (_jsx(AddFolder, { open: showEditModal, handleCancel: toggleEditModal, folder: selectedFolder }))] }));
|
|
375
412
|
}
|
|
376
413
|
export default FolderTree;
|
|
@@ -19,7 +19,7 @@ import { SUBSCRIPTION_EXPIRED_ERROR_MESSAGE } from "./appConstants";
|
|
|
19
19
|
const DamConfigContext = createContext(null);
|
|
20
20
|
export const DamConfigProvider = ({ children, config }) => {
|
|
21
21
|
// console.log(config);
|
|
22
|
-
const { damAccessKey, secretKey, subdomain, teamIds, appType, initialRootFolderId
|
|
22
|
+
const { damAccessKey, secretKey, subdomain, teamIds, appType, initialRootFolderId } = config;
|
|
23
23
|
const [accessToken, setAccessToken] = useState(null);
|
|
24
24
|
const [user, setDamUser] = useState(null);
|
|
25
25
|
const [brand, setBrand] = useState(null);
|