@bindu-dashing/dam-solution-v2 5.8.21 → 5.8.23
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,6 +76,17 @@ order = "asc") => {
|
|
|
76
76
|
? sortFoldersRecursively(f.children, sortByField, order)
|
|
77
77
|
: f.children })));
|
|
78
78
|
};
|
|
79
|
+
// ✅ Helper to insert children into the correct folder recursively
|
|
80
|
+
const insertSubfoldersRecursively = (tree) => {
|
|
81
|
+
const newTree = map(tree, (node) => {
|
|
82
|
+
if (isArray(node.children)) {
|
|
83
|
+
return Object.assign(Object.assign({}, node), { children: insertSubfoldersRecursively(node.children) });
|
|
84
|
+
}
|
|
85
|
+
return node;
|
|
86
|
+
});
|
|
87
|
+
console.log('## newTree', newTree);
|
|
88
|
+
return newTree;
|
|
89
|
+
};
|
|
79
90
|
function FolderTree({ currentRootId, expandedKeys, selectedKeys, handleExpand, setSelectedKeys, folders, setFolders, setExpandedKeys, setGlobalSearch, globalSearch, }) {
|
|
80
91
|
const { folderId, id, type } = useParams();
|
|
81
92
|
const damConfig = useDamConfig();
|
|
@@ -115,8 +126,8 @@ function FolderTree({ currentRootId, expandedKeys, selectedKeys, handleExpand, s
|
|
|
115
126
|
else {
|
|
116
127
|
// Simply use folder info from API response and newFolders as children
|
|
117
128
|
const sorted = sortFoldersRecursively(newFolders, "name", sortOrder);
|
|
118
|
-
console.log('## Folder info:', folderInfo, 'New children:', sorted);
|
|
119
|
-
setFolders([Object.assign(Object.assign({}, folderInfo), { children: sorted })]);
|
|
129
|
+
console.log('## Folder info:', folderInfo, 'New children:', insertSubfoldersRecursively(sorted));
|
|
130
|
+
setFolders([Object.assign(Object.assign({}, folderInfo), { children: insertSubfoldersRecursively(sorted) })]);
|
|
120
131
|
}
|
|
121
132
|
setState((prevState) => {
|
|
122
133
|
return Object.assign(Object.assign({}, prevState), { parentFolder: get(response, "data.folder", {}), loading: false, globalSearchValue: globalSearch || "" });
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import FolderTree from "./FolderTree";
|
|
3
|
-
import { useEffect, useState } from "react";
|
|
3
|
+
import { useEffect, useState, useRef } from "react";
|
|
4
4
|
import { useDamConfig } from "../hocs/DamConfigContext";
|
|
5
5
|
import { isArray, map } from "lodash";
|
|
6
6
|
import DriveContainer from "./DriveContainer";
|
|
@@ -14,25 +14,30 @@ export default function MyDriveMainContainer({ folders, setFolders }) {
|
|
|
14
14
|
const [selectedKeys, setSelectedKeys] = useState([]);
|
|
15
15
|
const [expandedKeys, setExpandedKeys] = useState([]);
|
|
16
16
|
const [globalSearch, setGlobalSearch] = useState("");
|
|
17
|
+
// Track if we've initialized from params to prevent rootFolderId from overriding
|
|
18
|
+
const initializedFromParamsRef = useRef(false);
|
|
17
19
|
useEffect(() => {
|
|
18
20
|
// Priority: URL params > Props from ParamsProvider > rootFolderId from config
|
|
19
21
|
if (params === null || params === void 0 ? void 0 : params.folderId) {
|
|
20
22
|
console.log('## Setting selectedKeys from params.folderId:', params.folderId);
|
|
21
23
|
setSelectedKeys(params.folderId);
|
|
24
|
+
initializedFromParamsRef.current = true;
|
|
22
25
|
}
|
|
23
|
-
else if (!(params === null || params === void 0 ? void 0 : params.folderId) && rootFolderId) {
|
|
24
|
-
//
|
|
25
|
-
console.log('## No params.folderId, using rootFolderId:', rootFolderId);
|
|
26
|
+
else if (!(params === null || params === void 0 ? void 0 : params.folderId) && rootFolderId && !selectedKeys && !initializedFromParamsRef.current) {
|
|
27
|
+
// Only set to rootFolderId if no params AND selectedKeys is empty AND we haven't initialized from params
|
|
28
|
+
console.log('## No params.folderId and no selectedKeys, using rootFolderId:', rootFolderId);
|
|
26
29
|
setSelectedKeys(rootFolderId);
|
|
27
30
|
}
|
|
28
|
-
}, [params === null || params === void 0 ? void 0 : params.folderId, params === null || params === void 0 ? void 0 : params.id, params === null || params === void 0 ? void 0 : params.parentId
|
|
31
|
+
}, [params === null || params === void 0 ? void 0 : params.folderId, params === null || params === void 0 ? void 0 : params.id, params === null || params === void 0 ? void 0 : params.parentId]);
|
|
32
|
+
// Priority: selectedKeys > params > rootFolderId
|
|
33
|
+
// Never fall back to rootFolderId if params.folderId is set
|
|
29
34
|
const currentRootId = isArray(selectedKeys)
|
|
30
35
|
? selectedKeys.length
|
|
31
36
|
? selectedKeys[selectedKeys.length - 1]
|
|
32
|
-
: rootFolderId
|
|
37
|
+
: ((params === null || params === void 0 ? void 0 : params.folderId) || (params === null || params === void 0 ? void 0 : params.id) || (params === null || params === void 0 ? void 0 : params.parentId) || rootFolderId)
|
|
33
38
|
: selectedKeys
|
|
34
39
|
? selectedKeys
|
|
35
|
-
: rootFolderId;
|
|
40
|
+
: ((params === null || params === void 0 ? void 0 : params.folderId) || (params === null || params === void 0 ? void 0 : params.id) || (params === null || params === void 0 ? void 0 : params.parentId) || rootFolderId);
|
|
36
41
|
console.log('## MyDriveMainContainer - selectedKeys:', selectedKeys, 'currentRootId:', currentRootId, 'rootFolderId:', rootFolderId);
|
|
37
42
|
const handleExpand = (keys) => {
|
|
38
43
|
setExpandedKeys(map(keys, (k) => k.toString()));
|