@bigbinary/neeto-folders-frontend 2.0.6 → 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');
@@ -268,7 +268,7 @@ var TreeSelect = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
268
268
  return setTouched(true);
269
269
  },
270
270
  onChange: function onChange(value) {
271
- return setValue(value);
271
+ return setValue(value !== null && value !== void 0 ? value : null);
272
272
  }
273
273
  }, _objectSpread$b({
274
274
  disabled: disabled,
@@ -295,8 +295,8 @@ var TreeSelect = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
295
295
  });
296
296
  TreeSelect.displayName = "TreeSelect";
297
297
 
298
- var createFolderOptions = function createFolderOptions(foldersMap, config) {
299
- return ramda.values(foldersMap).map(function (folder) {
298
+ var createFolderOptions = function createFolderOptions(foldersMap, activeFolder, config) {
299
+ return internal.mapObj(foldersMap, function (folder) {
300
300
  var _folder$meta$parent;
301
301
  return {
302
302
  id: folder.id,
@@ -305,6 +305,8 @@ var createFolderOptions = function createFolderOptions(foldersMap, config) {
305
305
  pId: (_folder$meta$parent = folder.meta.parent) === null || _folder$meta$parent === void 0 ? void 0 : _folder$meta$parent.id,
306
306
  disabled: folder.meta.depth >= config.maxDepth
307
307
  };
308
+ }, function (folder) {
309
+ return folder.id !== (activeFolder === null || activeFolder === void 0 ? void 0 : activeFolder.id);
308
310
  });
309
311
  };
310
312
  var createInitialValues = function createInitialValues(defaults, extraAttrs) {
@@ -356,19 +358,11 @@ var AddEditPane = function AddEditPane(_ref) {
356
358
  var foldersMap = React.useMemo(function () {
357
359
  return utils.treeToMap(folders, "sid");
358
360
  }, [folders]);
359
- var folderOptions = React.useMemo(function () {
360
- return createFolderOptions(foldersMap, config);
361
- }, [foldersMap]);
362
361
  var activeFolderSid = internal.getActiveFolderId(config);
363
362
  var activeFolder = foldersMap[activeFolderSid];
364
363
  var isValidParent = (activeFolder === null || activeFolder === void 0 ? void 0 : activeFolder.meta.depth) < config.maxDepth;
365
364
  var parentId = isValidParent ? activeFolder.id : null;
366
365
  var extraAttributes = config.extraAttributes;
367
- var initialValues = React.useMemo(function () {
368
- return isEditing ? item : createInitialValues({
369
- parentId: parentId
370
- }, extraAttributes);
371
- }, [isEditing, item, parentId, extraAttributes]);
372
366
  var onSubmitForm = /*#__PURE__*/function () {
373
367
  var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(values) {
374
368
  var payload;
@@ -403,6 +397,14 @@ var AddEditPane = function AddEditPane(_ref) {
403
397
  return _ref2.apply(this, arguments);
404
398
  };
405
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]);
406
408
  return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
407
409
  children: [/*#__PURE__*/jsxRuntime.jsx(Pane.Header, {
408
410
  children: /*#__PURE__*/jsxRuntime.jsx(Typography, {
@@ -417,40 +419,46 @@ var AddEditPane = function AddEditPane(_ref) {
417
419
  validationSchema: FORM_VALIDATION_SCHEMA,
418
420
  onSubmit: onSubmitForm
419
421
  },
420
- children: /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
421
- children: [/*#__PURE__*/jsxRuntime.jsx(Pane.Body, {
422
- className: "pb-6",
423
- children: /*#__PURE__*/jsxRuntime.jsxs("div", {
424
- className: "w-full space-y-5",
425
- children: [/*#__PURE__*/jsxRuntime.jsx(Input, {
426
- required: true,
427
- label: t("folders.name"),
428
- name: "name",
429
- ref: setFocusField
430
- }), /*#__PURE__*/jsxRuntime.jsx(ExtraAttributes, {
431
- attributes: extraAttributes
432
- }), /*#__PURE__*/jsxRuntime.jsxs("div", {
433
- children: [/*#__PURE__*/jsxRuntime.jsx(TreeSelect, {
434
- allowClear: true,
435
- showSearch: true,
436
- label: t("createFolder.parentTitle"),
437
- name: "parentId",
438
- treeData: folderOptions
439
- }), /*#__PURE__*/jsxRuntime.jsx(Typography, {
440
- className: "mt-1",
441
- style: "body3",
442
- 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
+ })]
443
448
  })]
444
- })]
445
- })
446
- }), /*#__PURE__*/jsxRuntime.jsx(Pane.Footer, {
447
- children: /*#__PURE__*/jsxRuntime.jsx(ActionBlock, {
448
- cancelButtonProps: {
449
- onClick: onClose
450
- }
451
- })
452
- })]
453
- })
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
+ }
454
462
  })]
455
463
  });
456
464
  };