@bigbinary/neeto-folders-frontend 2.0.42 → 2.0.43
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.
- package/dist/.ready +1 -1
- package/dist/cjs/v2/components.js +38 -9
- package/dist/cjs/v2/components.js.map +1 -1
- package/dist/v2/components.js +38 -9
- package/dist/v2/components.js.map +1 -1
- package/package.json +1 -1
package/dist/v2/components.js
CHANGED
|
@@ -1713,17 +1713,46 @@ var FoldersTree = function FoldersTree(_ref) {
|
|
|
1713
1713
|
var treeData = useMemo(function () {
|
|
1714
1714
|
return _toAtomsTreeData(buildTreeWithItems(folders, config));
|
|
1715
1715
|
}, [folders, config.items]);
|
|
1716
|
+
var treeMap = useMemo(function () {
|
|
1717
|
+
return treeData ? treeToMap(treeData, "sid") : {};
|
|
1718
|
+
}, [treeData]);
|
|
1719
|
+
|
|
1720
|
+
// Only hand react-arborist keys that actually exist in the current tree. A
|
|
1721
|
+
// missing/undefined selection — no folder in the URL, or a stale sid during
|
|
1722
|
+
// SPA navigation before the tree updates — makes its selectMulti call
|
|
1723
|
+
// identify(undefined) and throw "Cannot read properties of undefined".
|
|
1724
|
+
var selectedKeys = activeFolderSid && treeMap[activeFolderSid] ? [activeFolderSid] : [];
|
|
1716
1725
|
var updateExpandedKeys = function updateExpandedKeys() {
|
|
1717
|
-
var _activeFolder$meta;
|
|
1718
1726
|
if (!treeData) return;
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
var
|
|
1724
|
-
|
|
1725
|
-
|
|
1727
|
+
|
|
1728
|
+
// Expand every ancestor of the active folder (not just the immediate
|
|
1729
|
+
// parent) so the full path to it is visible — folders nest up to
|
|
1730
|
+
// config.maxDepth. Walk up via treeMap, guarding against cycles.
|
|
1731
|
+
var ancestorSids = [];
|
|
1732
|
+
var seen = new Set();
|
|
1733
|
+
var node = treeMap[activeFolderSid];
|
|
1734
|
+
while ((_node = node) !== null && _node !== void 0 && (_node = _node.meta) !== null && _node !== void 0 && (_node = _node.parent) !== null && _node !== void 0 && _node.sid && !seen.has(node.meta.parent.sid)) {
|
|
1735
|
+
var _node;
|
|
1736
|
+
var parentSid = node.meta.parent.sid;
|
|
1737
|
+
seen.add(parentSid);
|
|
1738
|
+
ancestorSids.push(parentSid);
|
|
1739
|
+
node = treeMap[parentSid];
|
|
1726
1740
|
}
|
|
1741
|
+
if (!ancestorSids.length) return;
|
|
1742
|
+
|
|
1743
|
+
// Functional update so the newly-expanded ancestors merge with the latest
|
|
1744
|
+
// expansion state (e.g. folders the user opened manually); bail out when
|
|
1745
|
+
// they're all already expanded to avoid a needless re-render.
|
|
1746
|
+
setExpandedKeysSet(function (prev) {
|
|
1747
|
+
if (ancestorSids.every(function (sid) {
|
|
1748
|
+
return prev.has(sid);
|
|
1749
|
+
})) return prev;
|
|
1750
|
+
var next = new Set(prev);
|
|
1751
|
+
ancestorSids.forEach(function (sid) {
|
|
1752
|
+
return next.add(sid);
|
|
1753
|
+
});
|
|
1754
|
+
return next;
|
|
1755
|
+
});
|
|
1727
1756
|
};
|
|
1728
1757
|
var handleExpand = function handleExpand(keys, _ref2) {
|
|
1729
1758
|
var expanded = _ref2.expanded,
|
|
@@ -1761,7 +1790,7 @@ var FoldersTree = function FoldersTree(_ref) {
|
|
|
1761
1790
|
className: "neeto-sidebar-folders-tree",
|
|
1762
1791
|
indent: 20,
|
|
1763
1792
|
rowHeight: 24,
|
|
1764
|
-
selectedKeys:
|
|
1793
|
+
selectedKeys: selectedKeys,
|
|
1765
1794
|
showLine: false,
|
|
1766
1795
|
switcherIcon: SwitcherIcon,
|
|
1767
1796
|
titleRender: function titleRender(node) {
|