@bigbinary/neeto-folders-frontend 2.0.20 → 2.0.21

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/cjs/hooks.js CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var useFolderActions = require('../useFolderActions-bZjr1L8D.js');
3
+ var useFolderActions = require('../useFolderActions-DDxiCAwt.js');
4
4
  require('@babel/runtime/helpers/defineProperty');
5
5
  require('i18next');
6
6
  require('@bigbinary/neeto-cist');
@@ -7,7 +7,7 @@ import { buildUrl, showThumbsUpToastr } from '@bigbinary/neeto-commons-frontend/
7
7
  import Alert from '@bigbinary/neetoui/Alert';
8
8
  import { useTranslation as useTranslation$1, Trans } from 'react-i18next';
9
9
  import { useHistory, Link, NavLink } from 'react-router-dom';
10
- import { c as useFolderStore, d as useDestroyFolder, a as useFolders, e as useFetchFolders, f as useCreateFolder, g as useUpdateFolder, h as useReorderFolders, D as DEFAULT_CONFIG, u as useFolder, b as useFolderActions } from './useFolderActions-DihI8JD6.js';
10
+ import { c as useFolderStore, d as useDestroyFolder, a as useFolders, e as useFetchFolders, f as useCreateFolder, g as useUpdateFolder, h as useReorderFolders, D as DEFAULT_CONFIG, u as useFolder, b as useFolderActions } from './useFolderActions-D7o1zguS.js';
11
11
  import { QUERY_KEYS } from './constants.js';
12
12
  import { p as pathToFolder, t as treeToMap, m as measureDepth, a as mapToTree, b as mapToSortedTree } from './index-D5OZ9YKi.js';
13
13
  import { a as isActiveFolder, g as getActiveFolderId, i as isArray, m as mapObj } from './internal-Bv2t6adO.js';
@@ -29,7 +29,7 @@ import Textarea from '@bigbinary/neetoui/formik/Textarea';
29
29
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
30
30
  import useHotkeys from '@bigbinary/neeto-hotkeys';
31
31
  import Button from '@bigbinary/neetoui/Button';
32
- import { hyphenate, noop, isNotPresent } from '@bigbinary/neeto-cist';
32
+ import { hyphenate, noop, isNotPresent, isNotEmpty } from '@bigbinary/neeto-cist';
33
33
  import { isEmpty, assoc } from 'ramda';
34
34
  import classNames from 'classnames';
35
35
  import Radio from '@bigbinary/neetoui/Radio';
@@ -41,6 +41,7 @@ import MoreDropdown from '@bigbinary/neeto-molecules/MoreDropdown';
41
41
  import Checkbox from '@bigbinary/neetoui/Checkbox';
42
42
  import Tree from '@bigbinary/neetoui/Tree';
43
43
  import Lock from '@bigbinary/neeto-icons/Lock';
44
+ import Plus from '@bigbinary/neeto-icons/Plus';
44
45
  import { ConfigProvider, TreeSelect as TreeSelect$1 } from 'antd';
45
46
  import { useField, useFormikContext } from 'formik';
46
47
  import Down from '@bigbinary/neeto-icons/Down';
@@ -362,7 +363,7 @@ var REORDER_TREE_INDENT_WIDTH = 30;
362
363
  var _excluded$5 = ["icon", "itemLabel", "folder", "folderLabel", "depth", "className", "onClick"];
363
364
  function ownKeys$c(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
364
365
  function _objectSpread$c(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$c(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$c(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
365
- var Node = function Node(_ref, ref) {
366
+ var Node$1 = function Node(_ref, ref) {
366
367
  var _folder$children$leng, _folder$children;
367
368
  var _ref$icon = _ref.icon,
368
369
  icon = _ref$icon === void 0 ? null : _ref$icon,
@@ -413,7 +414,7 @@ var Node = function Node(_ref, ref) {
413
414
  }))]
414
415
  });
415
416
  };
416
- var Node$1 = /*#__PURE__*/forwardRef(Node);
417
+ var Node$2 = /*#__PURE__*/forwardRef(Node$1);
417
418
 
418
419
  var _excluded$4 = ["folder", "item", "depth", "maxDepth", "disabled", "config"];
419
420
  function ownKeys$b(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
@@ -456,7 +457,7 @@ var _SelectableNode = function SelectableNode(_ref) {
456
457
  "opacity-60": isDisabled
457
458
  }),
458
459
  title: isDisabled ? t("moveToFolder.notAllowed") : undefined,
459
- children: [/*#__PURE__*/jsx(Node$1, _objectSpread$b(_objectSpread$b({}, _objectSpread$b(_objectSpread$b({}, rest), {}, {
460
+ children: [/*#__PURE__*/jsx(Node$2, _objectSpread$b(_objectSpread$b({}, _objectSpread$b(_objectSpread$b({}, rest), {}, {
460
461
  depth: depth,
461
462
  folder: folder,
462
463
  folderLabel: folderLabel,
@@ -686,7 +687,7 @@ var _DraggableNode$1 = function DraggableNode(_ref) {
686
687
  });
687
688
  };
688
689
  return /*#__PURE__*/jsxs(Fragment, {
689
- children: [/*#__PURE__*/jsx(Node$1, _objectSpread$9(_objectSpread$9(_objectSpread$9({}, rest), {}, {
690
+ children: [/*#__PURE__*/jsx(Node$2, _objectSpread$9(_objectSpread$9(_objectSpread$9({}, rest), {}, {
690
691
  className: classNames({
691
692
  "neeto-ui-rounded-lg hover:neeto-ui-bg-gray-100 w-full min-w-0 cursor-move transition-colors": true,
692
693
  "neeto-ui-bg-gray-100 opacity-50": isDragging,
@@ -837,7 +838,7 @@ var RearrangeFoldersPane = function RearrangeFoldersPane(_ref) {
837
838
  })]
838
839
  }), /*#__PURE__*/createPortal(/*#__PURE__*/jsx(DragOverlay, {
839
840
  zIndex: 99999,
840
- children: dragItem && /*#__PURE__*/jsx(Node$1, _objectSpread$8(_objectSpread$8({}, nodeProps), {}, {
841
+ children: dragItem && /*#__PURE__*/jsx(Node$2, _objectSpread$8(_objectSpread$8({}, nodeProps), {}, {
841
842
  className: "neeto-ui-bg-gray-200",
842
843
  depth: 0,
843
844
  folder: dragItem,
@@ -992,7 +993,7 @@ var _DraggableNode = function DraggableNode(_ref) {
992
993
  }, "".concat(folder.id, "--container"));
993
994
  };
994
995
  return /*#__PURE__*/jsxs(Fragment, {
995
- children: [/*#__PURE__*/jsx(Node$1, _objectSpread$7(_objectSpread$7({
996
+ children: [/*#__PURE__*/jsx(Node$2, _objectSpread$7(_objectSpread$7({
996
997
  depth: folder.meta.depth
997
998
  }, _objectSpread$7(_objectSpread$7(_objectSpread$7(_objectSpread$7({}, rest), {}, {
998
999
  folder: folder
@@ -1180,7 +1181,7 @@ var ReorderFoldersPane = function ReorderFoldersPane(_ref) {
1180
1181
  })]
1181
1182
  }), /*#__PURE__*/createPortal(/*#__PURE__*/jsx(DragOverlay, {
1182
1183
  zIndex: 99999,
1183
- children: dragState && /*#__PURE__*/jsx(Node$1, _objectSpread$6(_objectSpread$6({}, nodeProps), {}, {
1184
+ children: dragState && /*#__PURE__*/jsx(Node$2, _objectSpread$6(_objectSpread$6({}, nodeProps), {}, {
1184
1185
  className: "neeto-ui-bg-gray-200 pl-4 pr-12",
1185
1186
  depth: 0,
1186
1187
  folder: dragState.activeItem,
@@ -1384,14 +1385,27 @@ var MoveToFolderPane = function MoveToFolderPane(_ref) {
1384
1385
  });
1385
1386
  };
1386
1387
 
1387
- var FolderNode = function FolderNode(_ref) {
1388
+ var Node = function Node(_ref) {
1388
1389
  var _isActive = _ref.isActive,
1389
- folder = _ref.folder,
1390
- link = _ref.link;
1390
+ node = _ref.node,
1391
+ link = _ref.link,
1392
+ config = _ref.config;
1391
1393
  var _useTranslation = useTranslation(),
1392
1394
  t = _useTranslation.t;
1393
- var isPrivate = folder.isPrivate,
1394
- name = folder.name;
1395
+ var isPrivate = node.isPrivate,
1396
+ name = node.name,
1397
+ _node$isFolder = node.isFolder,
1398
+ isFolder = _node$isFolder === void 0 ? true : _node$isFolder;
1399
+ var _ref2 = isFolder ? config.folderActions : config.itemActions,
1400
+ _ref2$getMoreActions = _ref2.getMoreActions,
1401
+ getMoreActions = _ref2$getMoreActions === void 0 ? noop : _ref2$getMoreActions,
1402
+ _ref2$getAddActions = _ref2.getAddActions,
1403
+ getAddActions = _ref2$getAddActions === void 0 ? noop : _ref2$getAddActions;
1404
+ var moreActions = getMoreActions(node) || [];
1405
+ var addActions = getAddActions(node) || [];
1406
+ var hasMoreActions = isNotEmpty(moreActions);
1407
+ var hasAddActions = isNotEmpty(addActions);
1408
+ var hasAnyActions = hasMoreActions || hasAddActions;
1395
1409
  return /*#__PURE__*/jsx(NavLink, {
1396
1410
  activeClassName: "active",
1397
1411
  className: "neeto-sidebar-folders-tree__folder-node",
@@ -1400,20 +1414,48 @@ var FolderNode = function FolderNode(_ref) {
1400
1414
  },
1401
1415
  to: link,
1402
1416
  children: /*#__PURE__*/jsxs("div", {
1403
- className: "flex items-center",
1404
- "data-cy": "".concat(hyphenate(name), "-folder-sublink"),
1405
- children: [/*#__PURE__*/jsx(Typography, {
1406
- className: "line-clamp-1 block truncate",
1407
- component: "span",
1408
- style: "body2",
1409
- title: name,
1410
- children: name
1411
- }), isPrivate && /*#__PURE__*/jsx("span", {
1412
- title: t("common.private"),
1413
- children: /*#__PURE__*/jsx(Lock, {
1414
- className: "flex-shrink-0",
1415
- size: 20
1416
- })
1417
+ className: "flex items-center justify-between w-full group",
1418
+ "data-cy": "".concat(hyphenate(name), "-").concat(isFolder ? "folder" : "item", "-sublink"),
1419
+ title: "",
1420
+ children: [/*#__PURE__*/jsxs("div", {
1421
+ className: "flex items-center min-w-0 flex-1",
1422
+ children: [/*#__PURE__*/jsx(Typography, {
1423
+ className: "line-clamp-1 block truncate",
1424
+ component: "span",
1425
+ style: "body2",
1426
+ title: name,
1427
+ children: name
1428
+ }), isPrivate && /*#__PURE__*/jsx("span", {
1429
+ title: t("common.private"),
1430
+ children: /*#__PURE__*/jsx(Lock, {
1431
+ className: "flex-shrink-0 ml-1",
1432
+ size: 16
1433
+ })
1434
+ })]
1435
+ }), hasAnyActions && /*#__PURE__*/jsxs("div", {
1436
+ className: "flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity",
1437
+ onClick: function onClick(e) {
1438
+ e.preventDefault();
1439
+ e.stopPropagation();
1440
+ },
1441
+ children: [hasAddActions && /*#__PURE__*/jsx(MoreDropdown, {
1442
+ dropdownProps: {
1443
+ icon: Plus
1444
+ },
1445
+ menuItems: addActions,
1446
+ dropdownButtonProps: {
1447
+ size: "small",
1448
+ tooltipProps: {
1449
+ content: "Add",
1450
+ position: "top"
1451
+ }
1452
+ }
1453
+ }), hasMoreActions && /*#__PURE__*/jsx(MoreDropdown, {
1454
+ dropdownButtonProps: {
1455
+ size: "small"
1456
+ },
1457
+ menuItems: moreActions
1458
+ })]
1417
1459
  })]
1418
1460
  })
1419
1461
  });
@@ -1539,8 +1581,9 @@ var FoldersTree = function FoldersTree(_ref) {
1539
1581
  },
1540
1582
  selectedKeys: [activeFolderSid],
1541
1583
  titleRender: function titleRender(node) {
1542
- return /*#__PURE__*/jsx(FolderNode, {
1543
- folder: node,
1584
+ return /*#__PURE__*/jsx(Node, {
1585
+ config: config,
1586
+ node: node,
1544
1587
  isActive: node.sid === activeFolderSid,
1545
1588
  link: node.link || buildUrl(config.folderPath, _objectSpread$1(_objectSpread$1({}, params), {}, {
1546
1589
  folderId: node.sid