@bigbinary/neeto-folders-frontend 2.0.8 → 2.0.10

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-Ok2WR6Ht.js');
13
13
  var constants = require('./constants.js');
14
14
  var utils = require('../index-hg5oms4a.js');
15
15
  var internal = require('../internal-CXN78HoA.js');
@@ -19,6 +19,7 @@ var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
19
19
  var _regeneratorRuntime = require('@babel/runtime/regenerator');
20
20
  var React = require('react');
21
21
  var Typography = require('@bigbinary/neetoui/Typography');
22
+ var Spinner = require('@bigbinary/neetoui/Spinner');
22
23
  var Input = require('@bigbinary/neetoui/formik/Input');
23
24
  var ActionBlock = require('@bigbinary/neetoui/formik/ActionBlock');
24
25
  var Form = require('@bigbinary/neetoui/formik/Form');
@@ -349,7 +350,8 @@ var AddEditPane = function AddEditPane(_ref) {
349
350
  type = _useFolderStore.type,
350
351
  item = _useFolderStore.item;
351
352
  var _useFetchFolders = useFolderActions.useFetchFolders(config),
352
- folders = _useFetchFolders.data;
353
+ folders = _useFetchFolders.data,
354
+ isFetching = _useFetchFolders.isFetching;
353
355
  var _useCreateFolder = useFolderActions.useCreateFolder(config),
354
356
  createFolder = _useCreateFolder.mutate;
355
357
  var _useUpdateFolder = useFolderActions.useUpdateFolder(config),
@@ -363,38 +365,59 @@ var AddEditPane = function AddEditPane(_ref) {
363
365
  var isValidParent = (activeFolder === null || activeFolder === void 0 ? void 0 : activeFolder.meta.depth) < config.maxDepth;
364
366
  var parentId = isValidParent ? activeFolder.id : null;
365
367
  var extraAttributes = config.extraAttributes;
368
+ var handleError = function handleError(setStatus, error) {
369
+ var response = error.response;
370
+ if (response && response.data && response.data.errors) {
371
+ setStatus(response.data.errors);
372
+ }
373
+ };
366
374
  var onSubmitForm = /*#__PURE__*/function () {
367
- var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(values) {
368
- var payload;
375
+ var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(values, _ref2) {
376
+ var setStatus, payload, reactQueryOptions, config;
369
377
  return _regeneratorRuntime.wrap(function _callee$(_context) {
370
378
  while (1) switch (_context.prev = _context.next) {
371
379
  case 0:
380
+ setStatus = _ref2.setStatus;
372
381
  payload = createPayload(values, extraAttributes);
382
+ reactQueryOptions = {
383
+ onSuccess: function onSuccess() {
384
+ utils$1.showThumbsUpToastr();
385
+ onClose();
386
+ },
387
+ onError: function onError(error) {
388
+ return handleError(setStatus, error);
389
+ }
390
+ };
391
+ config = {
392
+ showToastr: false
393
+ };
373
394
  if (!isEditing) {
374
- _context.next = 6;
395
+ _context.next = 9;
375
396
  break;
376
397
  }
377
- _context.next = 4;
398
+ _context.next = 7;
378
399
  return updateFolder({
379
400
  id: item.id,
380
- payload: payload
381
- });
382
- case 4:
383
- _context.next = 8;
401
+ payload: payload,
402
+ config: config
403
+ }, reactQueryOptions);
404
+ case 7:
405
+ _context.next = 11;
384
406
  break;
385
- case 6:
386
- _context.next = 8;
387
- return createFolder(payload);
388
- case 8:
389
- onClose();
390
407
  case 9:
408
+ _context.next = 11;
409
+ return createFolder({
410
+ payload: payload,
411
+ config: config
412
+ }, reactQueryOptions);
413
+ case 11:
391
414
  case "end":
392
415
  return _context.stop();
393
416
  }
394
417
  }, _callee);
395
418
  }));
396
- return function onSubmitForm(_x) {
397
- return _ref2.apply(this, arguments);
419
+ return function onSubmitForm(_x, _x2) {
420
+ return _ref3.apply(this, arguments);
398
421
  };
399
422
  }();
400
423
  var folderOptions = React.useMemo(function () {
@@ -405,6 +428,12 @@ var AddEditPane = function AddEditPane(_ref) {
405
428
  parentId: parentId
406
429
  }, extraAttributes);
407
430
  }, [isEditing, item, parentId, extraAttributes]);
431
+ if (isFetching) {
432
+ return /*#__PURE__*/jsxRuntime.jsx(Pane.Body, {
433
+ className: "flex items-center justify-center",
434
+ children: /*#__PURE__*/jsxRuntime.jsx(Spinner, {})
435
+ });
436
+ }
408
437
  return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
409
438
  children: [/*#__PURE__*/jsxRuntime.jsx(Pane.Header, {
410
439
  children: /*#__PURE__*/jsxRuntime.jsx(Typography, {
@@ -419,8 +448,8 @@ var AddEditPane = function AddEditPane(_ref) {
419
448
  validationSchema: FORM_VALIDATION_SCHEMA,
420
449
  onSubmit: onSubmitForm
421
450
  },
422
- children: function children(_ref3) {
423
- var dirty = _ref3.dirty;
451
+ children: function children(_ref4) {
452
+ var dirty = _ref4.dirty;
424
453
  return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
425
454
  children: [/*#__PURE__*/jsxRuntime.jsx(Pane.Body, {
426
455
  className: "pb-6",
@@ -603,7 +632,8 @@ var PaneBody = function PaneBody(_ref) {
603
632
  setFolderState = _useFolderStore.setFolderState;
604
633
  var _useFetchFolders = useFolderActions.useFetchFolders(config),
605
634
  _useFetchFolders$data = _useFetchFolders.data,
606
- folders = _useFetchFolders$data === void 0 ? [] : _useFetchFolders$data;
635
+ folders = _useFetchFolders$data === void 0 ? [] : _useFetchFolders$data,
636
+ isFetching = _useFetchFolders.isFetching;
607
637
  var _useTranslation = useTranslation(config),
608
638
  t = _useTranslation.t;
609
639
  var _useFolderStore2 = useFolderActions.useFolderStore(function (store) {
@@ -642,6 +672,12 @@ var PaneBody = function PaneBody(_ref) {
642
672
  mode: "global",
643
673
  enabled: !!type
644
674
  });
675
+ if (isFetching) {
676
+ return /*#__PURE__*/jsxRuntime.jsx(Pane.Body, {
677
+ className: "flex items-center justify-center",
678
+ children: /*#__PURE__*/jsxRuntime.jsx(Spinner, {})
679
+ });
680
+ }
645
681
  return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
646
682
  children: [/*#__PURE__*/jsxRuntime.jsxs(Pane.Header, {
647
683
  className: "flex items-center justify-between",
@@ -813,7 +849,8 @@ var RearrangeFoldersPane = function RearrangeFoldersPane(_ref) {
813
849
  var _useTranslation = useTranslation(config),
814
850
  t = _useTranslation.t;
815
851
  var _useFetchFolders = useFolderActions.useFetchFolders(config),
816
- folders = _useFetchFolders.data;
852
+ folders = _useFetchFolders.data,
853
+ isFetching = _useFetchFolders.isFetching;
817
854
  var _useReorderFolders = useFolderActions.useReorderFolders(config),
818
855
  reorderFolders = _useReorderFolders.mutate;
819
856
  var _useFolderStore = useFolderActions.useFolderStore(function (store) {
@@ -882,6 +919,12 @@ var RearrangeFoldersPane = function RearrangeFoldersPane(_ref) {
882
919
  className: "neeto-ui-text-gray-500 relative -left-[0.3125rem] flex-shrink-0"
883
920
  })
884
921
  };
922
+ if (isFetching) {
923
+ return /*#__PURE__*/jsxRuntime.jsx(Pane.Body, {
924
+ className: "flex items-center justify-center",
925
+ children: /*#__PURE__*/jsxRuntime.jsx(Spinner, {})
926
+ });
927
+ }
885
928
  return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
886
929
  children: [/*#__PURE__*/jsxRuntime.jsx(Pane.Header, {
887
930
  children: /*#__PURE__*/jsxRuntime.jsx(Typography, {
@@ -1128,7 +1171,8 @@ var ReorderFoldersPane = function ReorderFoldersPane(_ref) {
1128
1171
  var _useTranslation = useTranslation(config),
1129
1172
  t = _useTranslation.t;
1130
1173
  var _useFetchFolders = useFolderActions.useFetchFolders(config),
1131
- folders = _useFetchFolders.data;
1174
+ folders = _useFetchFolders.data,
1175
+ isFetching = _useFetchFolders.isFetching;
1132
1176
  var _useReorderFolders = useFolderActions.useReorderFolders(config),
1133
1177
  reorderFolders = _useReorderFolders.mutate;
1134
1178
  var sensors = core.useSensors(core.useSensor(core.PointerSensor, sensorConfig));
@@ -1210,6 +1254,12 @@ var ReorderFoldersPane = function ReorderFoldersPane(_ref) {
1210
1254
  className: "neeto-ui-text-gray-500 relative -left-[0.3125rem] flex-shrink-0"
1211
1255
  })
1212
1256
  };
1257
+ if (isFetching) {
1258
+ return /*#__PURE__*/jsxRuntime.jsx(Pane.Body, {
1259
+ className: "flex items-center justify-center",
1260
+ children: /*#__PURE__*/jsxRuntime.jsx(Spinner, {})
1261
+ });
1262
+ }
1213
1263
  return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
1214
1264
  children: [/*#__PURE__*/jsxRuntime.jsx(Pane.Header, {
1215
1265
  children: /*#__PURE__*/jsxRuntime.jsx(Typography, {
@@ -1510,12 +1560,32 @@ var FoldersTree = function FoldersTree(_ref) {
1510
1560
  var _activeFolder$meta;
1511
1561
  if (!folders) return;
1512
1562
  // When active folder changes from external sources, update expanded keys to auto expand tree.
1513
- var expandedKeys = [];
1563
+ var updatedExpandedKeys = _toConsumableArray(expandedKeys);
1514
1564
  var map = utils.treeToMap(folders, "sid");
1515
1565
  var activeFolder = map[activeFolderSid];
1516
1566
  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);
1567
+ if (parentSid && !updatedExpandedKeys.includes(parentSid)) {
1568
+ updatedExpandedKeys.push(parentSid);
1569
+ }
1570
+ setExpandedKeys(updatedExpandedKeys);
1571
+ };
1572
+ var handleExpand = function handleExpand(keys, _ref2) {
1573
+ var expanded = _ref2.expanded,
1574
+ node = _ref2.node;
1575
+ if (expanded) {
1576
+ setExpandedKeys(keys);
1577
+ return;
1578
+ }
1579
+ var keysSet = new Set(keys);
1580
+ var _removeChildKeys = function removeChildKeys() {
1581
+ var children = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
1582
+ children.forEach(function (child) {
1583
+ keysSet["delete"](child.sid);
1584
+ _removeChildKeys(child.children);
1585
+ });
1586
+ };
1587
+ _removeChildKeys(node.children);
1588
+ setExpandedKeys(_toConsumableArray(keysSet));
1519
1589
  };
1520
1590
  React.useEffect(function () {
1521
1591
  // Non urgent update.
@@ -1553,7 +1623,7 @@ var FoldersTree = function FoldersTree(_ref) {
1553
1623
  }))
1554
1624
  });
1555
1625
  },
1556
- onExpand: setExpandedKeys
1626
+ onExpand: handleExpand
1557
1627
  });
1558
1628
  };
1559
1629