@bigbinary/neeto-folders-frontend 2.0.5 → 2.0.7

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,10 +9,10 @@ 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-D8xGNhk0.js');
12
+ var useFolderActions = require('../useFolderActions-ibifd0ZD.js');
13
13
  var constants = require('./constants.js');
14
- var utils = require('../index-BFO1zYNo.js');
15
- var internal = require('../internal-CS6_tPWL.js');
14
+ var utils = require('../index-hg5oms4a.js');
15
+ var internal = require('../internal-CXN78HoA.js');
16
16
  var jsxRuntime = require('react/jsx-runtime');
17
17
  var Pane = require('@bigbinary/neetoui/Pane');
18
18
  var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
@@ -33,7 +33,6 @@ var classNames = require('classnames');
33
33
  var formik = require('formik');
34
34
  var Down = require('@bigbinary/neeto-icons/Down');
35
35
  var Label = require('@bigbinary/neetoui/Label');
36
- var ramda = require('ramda');
37
36
  var useHotkeys = require('@bigbinary/neeto-hotkeys');
38
37
  var Button = require('@bigbinary/neetoui/Button');
39
38
  var neetoCist = require('@bigbinary/neeto-cist');
@@ -41,6 +40,7 @@ var Radio = require('@bigbinary/neetoui/Radio');
41
40
  var core = require('@dnd-kit/core');
42
41
  var Reorder = require('@bigbinary/neeto-icons/Reorder');
43
42
  var Toastr = require('@bigbinary/neetoui/Toastr');
43
+ var ramda = require('ramda');
44
44
  var reactDom = require('react-dom');
45
45
  var MoreDropdown = require('@bigbinary/neeto-molecules/MoreDropdown');
46
46
  var Checkbox = require('@bigbinary/neetoui/Checkbox');
@@ -104,6 +104,7 @@ var FoldersAlerts = function FoldersAlerts(_ref) {
104
104
  };
105
105
  var onConfirmDelete = function onConfirmDelete() {
106
106
  var onSuccess = function onSuccess() {
107
+ var _config$onUpdateSucce;
107
108
  var isActive = internal.isActiveFolder(config, item.sid);
108
109
  // Invalidates items and folder details. Refetch only if not active folder.
109
110
  var invalidationKeys = [].concat(_toConsumableArray(config.invalidationKeys), [[constants.QUERY_KEYS.FOLDERS, config.type, constants.QUERY_KEYS.DETAILS]]);
@@ -121,6 +122,7 @@ var FoldersAlerts = function FoldersAlerts(_ref) {
121
122
  })) : "/";
122
123
  history.replace(redirectUrl);
123
124
  }
125
+ (_config$onUpdateSucce = config.onUpdateSuccess) === null || _config$onUpdateSucce === void 0 || _config$onUpdateSucce.call(config);
124
126
  };
125
127
  destroyFolder(item.id, {
126
128
  onSuccess: onSuccess,
@@ -266,7 +268,7 @@ var TreeSelect = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
266
268
  return setTouched(true);
267
269
  },
268
270
  onChange: function onChange(value) {
269
- return setValue(value);
271
+ return setValue(value !== null && value !== void 0 ? value : null);
270
272
  }
271
273
  }, _objectSpread$b({
272
274
  disabled: disabled,
@@ -293,8 +295,8 @@ var TreeSelect = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
293
295
  });
294
296
  TreeSelect.displayName = "TreeSelect";
295
297
 
296
- var createFolderOptions = function createFolderOptions(foldersMap, config) {
297
- return ramda.values(foldersMap).map(function (folder) {
298
+ var createFolderOptions = function createFolderOptions(foldersMap, activeFolder, config) {
299
+ return internal.mapObj(foldersMap, function (folder) {
298
300
  var _folder$meta$parent;
299
301
  return {
300
302
  id: folder.id,
@@ -303,6 +305,8 @@ var createFolderOptions = function createFolderOptions(foldersMap, config) {
303
305
  pId: (_folder$meta$parent = folder.meta.parent) === null || _folder$meta$parent === void 0 ? void 0 : _folder$meta$parent.id,
304
306
  disabled: folder.meta.depth >= config.maxDepth
305
307
  };
308
+ }, function (folder) {
309
+ return folder.id !== (activeFolder === null || activeFolder === void 0 ? void 0 : activeFolder.id);
306
310
  });
307
311
  };
308
312
  var createInitialValues = function createInitialValues(defaults, extraAttrs) {
@@ -354,19 +358,11 @@ var AddEditPane = function AddEditPane(_ref) {
354
358
  var foldersMap = React.useMemo(function () {
355
359
  return utils.treeToMap(folders, "sid");
356
360
  }, [folders]);
357
- var folderOptions = React.useMemo(function () {
358
- return createFolderOptions(foldersMap, config);
359
- }, [foldersMap]);
360
361
  var activeFolderSid = internal.getActiveFolderId(config);
361
362
  var activeFolder = foldersMap[activeFolderSid];
362
363
  var isValidParent = (activeFolder === null || activeFolder === void 0 ? void 0 : activeFolder.meta.depth) < config.maxDepth;
363
364
  var parentId = isValidParent ? activeFolder.id : null;
364
365
  var extraAttributes = config.extraAttributes;
365
- var initialValues = React.useMemo(function () {
366
- return isEditing ? item : createInitialValues({
367
- parentId: parentId
368
- }, extraAttributes);
369
- }, [isEditing, item, parentId, extraAttributes]);
370
366
  var onSubmitForm = /*#__PURE__*/function () {
371
367
  var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(values) {
372
368
  var payload;
@@ -401,6 +397,14 @@ var AddEditPane = function AddEditPane(_ref) {
401
397
  return _ref2.apply(this, arguments);
402
398
  };
403
399
  }();
400
+ var folderOptions = React.useMemo(function () {
401
+ return createFolderOptions(foldersMap, item, config);
402
+ }, [foldersMap, item]);
403
+ var initialValues = React.useMemo(function () {
404
+ return isEditing ? item : createInitialValues({
405
+ parentId: parentId
406
+ }, extraAttributes);
407
+ }, [isEditing, item, parentId, extraAttributes]);
404
408
  return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
405
409
  children: [/*#__PURE__*/jsxRuntime.jsx(Pane.Header, {
406
410
  children: /*#__PURE__*/jsxRuntime.jsx(Typography, {
@@ -415,40 +419,46 @@ var AddEditPane = function AddEditPane(_ref) {
415
419
  validationSchema: FORM_VALIDATION_SCHEMA,
416
420
  onSubmit: onSubmitForm
417
421
  },
418
- children: /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
419
- children: [/*#__PURE__*/jsxRuntime.jsx(Pane.Body, {
420
- className: "pb-6",
421
- children: /*#__PURE__*/jsxRuntime.jsxs("div", {
422
- className: "w-full space-y-5",
423
- children: [/*#__PURE__*/jsxRuntime.jsx(Input, {
424
- required: true,
425
- label: t("folders.name"),
426
- name: "name",
427
- ref: setFocusField
428
- }), /*#__PURE__*/jsxRuntime.jsx(ExtraAttributes, {
429
- attributes: extraAttributes
430
- }), /*#__PURE__*/jsxRuntime.jsxs("div", {
431
- children: [/*#__PURE__*/jsxRuntime.jsx(TreeSelect, {
432
- allowClear: true,
433
- showSearch: true,
434
- label: t("createFolder.parentTitle"),
435
- name: "parentId",
436
- treeData: folderOptions
437
- }), /*#__PURE__*/jsxRuntime.jsx(Typography, {
438
- className: "mt-1",
439
- style: "body3",
440
- children: t("createFolder.parentInfo")
422
+ children: function children(_ref3) {
423
+ var dirty = _ref3.dirty;
424
+ return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
425
+ children: [/*#__PURE__*/jsxRuntime.jsx(Pane.Body, {
426
+ className: "pb-6",
427
+ children: /*#__PURE__*/jsxRuntime.jsxs("div", {
428
+ className: "w-full space-y-5",
429
+ children: [/*#__PURE__*/jsxRuntime.jsx(Input, {
430
+ required: true,
431
+ label: t("folders.name"),
432
+ name: "name",
433
+ ref: setFocusField
434
+ }), /*#__PURE__*/jsxRuntime.jsx(ExtraAttributes, {
435
+ attributes: extraAttributes
436
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
437
+ children: [/*#__PURE__*/jsxRuntime.jsx(TreeSelect, {
438
+ allowClear: true,
439
+ showSearch: true,
440
+ label: t("createFolder.parentTitle"),
441
+ name: "parentId",
442
+ treeData: folderOptions
443
+ }), /*#__PURE__*/jsxRuntime.jsx(Typography, {
444
+ className: "mt-1",
445
+ style: "body3",
446
+ children: t("createFolder.parentInfo")
447
+ })]
441
448
  })]
442
- })]
443
- })
444
- }), /*#__PURE__*/jsxRuntime.jsx(Pane.Footer, {
445
- children: /*#__PURE__*/jsxRuntime.jsx(ActionBlock, {
446
- cancelButtonProps: {
447
- onClick: onClose
448
- }
449
- })
450
- })]
451
- })
449
+ })
450
+ }), /*#__PURE__*/jsxRuntime.jsx(Pane.Footer, {
451
+ children: /*#__PURE__*/jsxRuntime.jsx(ActionBlock, {
452
+ cancelButtonProps: {
453
+ onClick: onClose
454
+ },
455
+ submitButtonProps: {
456
+ disabled: !dirty
457
+ }
458
+ })
459
+ })]
460
+ });
461
+ }
452
462
  })]
453
463
  });
454
464
  };
@@ -706,7 +716,11 @@ var MoveFolderPane = function MoveFolderPane(_ref) {
706
716
  id: item.id,
707
717
  payload: payload
708
718
  }, {
709
- onSuccess: onClose
719
+ onSuccess: function onSuccess() {
720
+ var _config$onUpdateSucce;
721
+ onClose();
722
+ (_config$onUpdateSucce = config.onUpdateSuccess) === null || _config$onUpdateSucce === void 0 || _config$onUpdateSucce.call(config);
723
+ }
710
724
  });
711
725
  };
712
726
  return /*#__PURE__*/jsxRuntime.jsx(PaneBody, {
@@ -852,7 +866,11 @@ var RearrangeFoldersPane = function RearrangeFoldersPane(_ref) {
852
866
  changes: changes
853
867
  };
854
868
  reorderFolders(payload, {
855
- onSuccess: onClose
869
+ onSuccess: function onSuccess() {
870
+ var _config$onUpdateSucce;
871
+ onClose();
872
+ (_config$onUpdateSucce = config.onUpdateSuccess) === null || _config$onUpdateSucce === void 0 || _config$onUpdateSucce.call(config);
873
+ }
856
874
  });
857
875
  };
858
876
  useHotkeys(["command+enter", "enter"], onSubmit, {
@@ -1176,7 +1194,11 @@ var ReorderFoldersPane = function ReorderFoldersPane(_ref) {
1176
1194
  changes: changes
1177
1195
  };
1178
1196
  reorderFolders(payload, {
1179
- onSuccess: onClose
1197
+ onSuccess: function onSuccess() {
1198
+ var _config$onUpdateSucce;
1199
+ onClose();
1200
+ (_config$onUpdateSucce = config.onUpdateSuccess) === null || _config$onUpdateSucce === void 0 || _config$onUpdateSucce.call(config);
1201
+ }
1180
1202
  });
1181
1203
  };
1182
1204
  useHotkeys(["command+enter", "enter"], onSubmit, {