@bigbinary/neeto-folders-frontend 2.0.8 → 2.0.9

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.
@@ -9,7 +9,7 @@ var utils$1 = require('@bigbinary/neeto-commons-frontend/utils');
9
9
  var Alert = require('@bigbinary/neetoui/Alert');
10
10
  var reactI18next = require('react-i18next');
11
11
  var reactRouterDom = require('react-router-dom');
12
- var useFolderActions = require('../useFolderActions-ibifd0ZD.js');
12
+ var useFolderActions = require('../useFolderActions-69nKxJCT.js');
13
13
  var constants = require('./constants.js');
14
14
  var utils = require('../index-hg5oms4a.js');
15
15
  var internal = require('../internal-CXN78HoA.js');
@@ -1510,12 +1510,32 @@ var FoldersTree = function FoldersTree(_ref) {
1510
1510
  var _activeFolder$meta;
1511
1511
  if (!folders) return;
1512
1512
  // When active folder changes from external sources, update expanded keys to auto expand tree.
1513
- var expandedKeys = [];
1513
+ var updatedExpandedKeys = _toConsumableArray(expandedKeys);
1514
1514
  var map = utils.treeToMap(folders, "sid");
1515
1515
  var activeFolder = map[activeFolderSid];
1516
1516
  var parentSid = activeFolder === null || activeFolder === void 0 || (_activeFolder$meta = activeFolder.meta) === null || _activeFolder$meta === void 0 || (_activeFolder$meta = _activeFolder$meta.parent) === null || _activeFolder$meta === void 0 ? void 0 : _activeFolder$meta.sid;
1517
- if (parentSid) expandedKeys.push(parentSid);
1518
- setExpandedKeys(expandedKeys);
1517
+ if (parentSid && !updatedExpandedKeys.includes(parentSid)) {
1518
+ updatedExpandedKeys.push(parentSid);
1519
+ }
1520
+ setExpandedKeys(updatedExpandedKeys);
1521
+ };
1522
+ var handleExpand = function handleExpand(keys, _ref2) {
1523
+ var expanded = _ref2.expanded,
1524
+ node = _ref2.node;
1525
+ if (expanded) {
1526
+ setExpandedKeys(keys);
1527
+ return;
1528
+ }
1529
+ var keysSet = new Set(keys);
1530
+ var _removeChildKeys = function removeChildKeys() {
1531
+ var children = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
1532
+ children.forEach(function (child) {
1533
+ keysSet["delete"](child.sid);
1534
+ _removeChildKeys(child.children);
1535
+ });
1536
+ };
1537
+ _removeChildKeys(node.children);
1538
+ setExpandedKeys(_toConsumableArray(keysSet));
1519
1539
  };
1520
1540
  React.useEffect(function () {
1521
1541
  // Non urgent update.
@@ -1553,7 +1573,7 @@ var FoldersTree = function FoldersTree(_ref) {
1553
1573
  }))
1554
1574
  });
1555
1575
  },
1556
- onExpand: setExpandedKeys
1576
+ onExpand: handleExpand
1557
1577
  });
1558
1578
  };
1559
1579