@bigbinary/neeto-folders-frontend 2.0.12 → 2.0.13

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-_yrbFSyE.js');
12
+ var useFolderActions = require('../useFolderActions-DZ-ywc7_.js');
13
13
  var constants = require('./constants.js');
14
14
  var utils = require('../index-DsbViyGc.js');
15
15
  var internal = require('../internal-68eAwbnk.js');
@@ -23,7 +23,6 @@ var Spinner = require('@bigbinary/neetoui/Spinner');
23
23
  var Input = require('@bigbinary/neetoui/formik/Input');
24
24
  var ActionBlock = require('@bigbinary/neetoui/formik/ActionBlock');
25
25
  var Form = require('@bigbinary/neetoui/formik/Form');
26
- var ramda = require('ramda');
27
26
  var i18next = require('i18next');
28
27
  var yup = require('yup');
29
28
  var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
@@ -33,6 +32,7 @@ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
33
32
  var useHotkeys = require('@bigbinary/neeto-hotkeys');
34
33
  var Button = require('@bigbinary/neetoui/Button');
35
34
  var neetoCist = require('@bigbinary/neeto-cist');
35
+ var ramda = require('ramda');
36
36
  var classNames = require('classnames');
37
37
  var Radio = require('@bigbinary/neetoui/Radio');
38
38
  var core = require('@dnd-kit/core');
@@ -193,8 +193,18 @@ var createPayload = function createPayload(values, extraAttrs) {
193
193
  });
194
194
  return payload;
195
195
  };
196
+ var filterExtraAttributes = function filterExtraAttributes(attributes, isEditing) {
197
+ if (!attributes || !Array.isArray(attributes)) return [];
198
+ return attributes.filter(function (attribute) {
199
+ if (isEditing) {
200
+ return attribute.isEditAttribute !== false;
201
+ }
202
+ return attribute.isCreateAttribute !== false;
203
+ });
204
+ };
196
205
 
197
206
  var AddEditPane = function AddEditPane(_ref) {
207
+ var _config$addEditValida;
198
208
  var setFocusField = _ref.setFocusField,
199
209
  config = _ref.config,
200
210
  onClose = _ref.onClose;
@@ -216,7 +226,11 @@ var AddEditPane = function AddEditPane(_ref) {
216
226
  var _useUpdateFolder = useFolderActions.useUpdateFolder(config),
217
227
  updateFolder = _useUpdateFolder.mutateAsync;
218
228
  var isEditing = type === "edit" && item;
229
+ var activeFolderSid = internal.getActiveFolderId(config);
219
230
  var extraAttributes = config.extraAttributes;
231
+ var filteredExtraAttributes = React.useMemo(function () {
232
+ return filterExtraAttributes(extraAttributes, isEditing);
233
+ }, [extraAttributes, isEditing]);
220
234
  var handleError = function handleError(setStatus, error) {
221
235
  var response = error.response;
222
236
  if (response && response.data && response.data.errors) {
@@ -230,9 +244,14 @@ var AddEditPane = function AddEditPane(_ref) {
230
244
  while (1) switch (_context.prev = _context.next) {
231
245
  case 0:
232
246
  setStatus = _ref2.setStatus;
233
- payload = createPayload(values, extraAttributes);
247
+ payload = createPayload(values, filteredExtraAttributes);
234
248
  reactQueryOptions = {
235
- onSuccess: function onSuccess() {
249
+ onSuccess: function onSuccess(_ref4) {
250
+ var sid = _ref4.sid;
251
+ if (isEditing && sid !== item.sid) {
252
+ var newPath = window.location.pathname.replace(activeFolderSid, sid);
253
+ window.location.href = newPath;
254
+ }
236
255
  utils$1.showThumbsUpToastr();
237
256
  onClose();
238
257
  },
@@ -251,7 +270,8 @@ var AddEditPane = function AddEditPane(_ref) {
251
270
  return updateFolder({
252
271
  id: item.id,
253
272
  payload: payload,
254
- config: config
273
+ config: config,
274
+ initialSlug: item.sid
255
275
  }, reactQueryOptions);
256
276
  case 7:
257
277
  _context.next = 11;
@@ -273,8 +293,8 @@ var AddEditPane = function AddEditPane(_ref) {
273
293
  };
274
294
  }();
275
295
  var initialValues = React.useMemo(function () {
276
- return isEditing ? item : createInitialValues({}, extraAttributes);
277
- }, [isEditing, item, extraAttributes]);
296
+ return isEditing ? item : createInitialValues({}, filteredExtraAttributes);
297
+ }, [isEditing, item, filteredExtraAttributes]);
278
298
  if (isFetching) {
279
299
  return /*#__PURE__*/jsxRuntime.jsx(Pane.Body, {
280
300
  className: "flex items-center justify-center",
@@ -292,11 +312,11 @@ var AddEditPane = function AddEditPane(_ref) {
292
312
  formikProps: {
293
313
  initialValues: initialValues,
294
314
  enableReinitialize: true,
295
- validationSchema: FORM_VALIDATION_SCHEMA,
315
+ validationSchema: ((_config$addEditValida = config.addEditValidationSchema) === null || _config$addEditValida === void 0 ? void 0 : _config$addEditValida.call(config, isEditing)) || FORM_VALIDATION_SCHEMA,
296
316
  onSubmit: onSubmitForm
297
317
  },
298
- children: function children(_ref4) {
299
- var dirty = _ref4.dirty;
318
+ children: function children(_ref5) {
319
+ var dirty = _ref5.dirty;
300
320
  return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
301
321
  children: [/*#__PURE__*/jsxRuntime.jsx(Pane.Body, {
302
322
  className: "pb-6",
@@ -308,7 +328,7 @@ var AddEditPane = function AddEditPane(_ref) {
308
328
  name: "name",
309
329
  ref: setFocusField
310
330
  }), /*#__PURE__*/jsxRuntime.jsx(ExtraAttributes, {
311
- attributes: extraAttributes
331
+ attributes: filteredExtraAttributes
312
332
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
313
333
  children: [/*#__PURE__*/jsxRuntime.jsx(TreeSelect, {
314
334
  config: config,