@ukhomeoffice/cop-react-form-renderer 5.62.2 → 5.65.0

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.
@@ -16,6 +16,7 @@ var _BannerStrip = _interopRequireDefault(require("./BannerStrip"));
16
16
  var _RenderListView = _interopRequireDefault(require("./RenderListView"));
17
17
  var _SummaryCardDetails = _interopRequireDefault(require("./SummaryCardDetails"));
18
18
  require("./SummaryCard.scss");
19
+ var _excluded = ["isDuplicate"];
19
20
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
20
21
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
21
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -25,6 +26,8 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
25
26
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
26
27
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
27
28
  function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
29
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
30
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
28
31
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
29
32
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
30
33
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
@@ -49,7 +52,7 @@ var SummaryCard = function SummaryCard(_ref) {
49
52
  entryData = _ref.entryData,
50
53
  config = _ref.config,
51
54
  classModifiers = _ref.classModifiers,
52
- onChange = _ref.onChange,
55
+ onFullEdit = _ref.onFullEdit,
53
56
  onDelete = _ref.onDelete,
54
57
  onDuplicate = _ref.onDuplicate,
55
58
  onQuickEdit = _ref.onQuickEdit,
@@ -57,13 +60,12 @@ var SummaryCard = function SummaryCard(_ref) {
57
60
  childCollections = _ref.childCollections,
58
61
  formData = _ref.formData,
59
62
  masterPage = _ref.masterPage,
60
- hideDetails = _ref.hideDetails,
61
- inError = _ref.inError;
63
+ hideDetails = _ref.hideDetails;
62
64
  var _useState = (0, _react.useState)(false),
63
65
  _useState2 = _slicedToArray(_useState, 2),
64
66
  quickEdit = _useState2[0],
65
67
  setQuickEdit = _useState2[1];
66
- var classes = _copReactComponents.Utils.classBuilder(DEFAULT_CLASS, classModifiers, inError ? 'error' : '');
68
+ var classes = _copReactComponents.Utils.classBuilder(DEFAULT_CLASS, classModifiers, config.className);
67
69
  var quickEditPage = (0, _react.useMemo)(function () {
68
70
  return config.quickEdit ? (0, _getQuickEditPage.default)(masterPage, entryData) : null;
69
71
  }, [masterPage, config, entryData, quickEdit]);
@@ -73,12 +75,13 @@ var SummaryCard = function SummaryCard(_ref) {
73
75
  var _useValidation = (0, _hooks.useValidation)(),
74
76
  addErrors = _useValidation.addErrors,
75
77
  resetQuickEditErrors = _useValidation.resetQuickEditErrors,
78
+ clearTopLevelErrorsForCard = _useValidation.clearTopLevelErrorsForCard,
76
79
  validate = _useValidation.validate;
77
80
  var _useHooks = (0, _hooks.useHooks)(),
78
81
  hooks = _useHooks.hooks;
79
82
  var _onAction = /*#__PURE__*/function () {
80
83
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(action, patch) {
81
- var errors, hookErrors, allErrors, allData;
84
+ var errors, hookErrors, allErrors, allData, _allData$entryData$in, isDuplicate, newEntry;
82
85
  return _regeneratorRuntime().wrap(function _callee$(_context) {
83
86
  while (1) switch (_context.prev = _context.next) {
84
87
  case 0:
@@ -112,8 +115,14 @@ var SummaryCard = function SummaryCard(_ref) {
112
115
  // Save data assuming no errors
113
116
  allErrors = errors.concat(hookErrors);
114
117
  if (allErrors.length === 0 || allErrors.length === 1 && allErrors[0] === undefined) {
115
- allData = _utils.default.CollectionPage.getData(parentCollectionName, formData);
116
- allData[entryData.index] = _objectSpread(_objectSpread({}, allData === null || allData === void 0 ? void 0 : allData[entryData.index]), patch);
118
+ // Now that validation has passed with no errors - from the page or
119
+ // the hook - we want to remove any errors for this
120
+ // entry from the top-level validation context too.
121
+ clearTopLevelErrorsForCard();
122
+ allData = _utils.default.CollectionPage.getData(parentCollectionName, formData); // Pull out the isDuplicate flag if one exists as we want
123
+ // to remove it now that the entry has been edited.
124
+ _allData$entryData$in = allData[entryData.index], isDuplicate = _allData$entryData$in.isDuplicate, newEntry = _objectWithoutProperties(_allData$entryData$in, _excluded);
125
+ allData[entryData.index] = _objectSpread(_objectSpread({}, newEntry), patch);
117
126
  onQuickEdit({
118
127
  target: {
119
128
  name: parentCollectionName,
@@ -141,9 +150,10 @@ var SummaryCard = function SummaryCard(_ref) {
141
150
  id: id,
142
151
  entryData: entryData,
143
152
  config: config,
144
- onChange: onChange,
153
+ onFullEdit: onFullEdit,
145
154
  onDelete: onDelete,
146
- masterPage: masterPage
155
+ masterPage: masterPage,
156
+ classModifiers: classModifiers
147
157
  });
148
158
  }
149
159
  return /*#__PURE__*/_react.default.createElement("div", {
@@ -174,11 +184,11 @@ var SummaryCard = function SummaryCard(_ref) {
174
184
  },
175
185
  classModifiers: "primary",
176
186
  disabled: quickEdit
177
- }, DEFAULT_EDIT_LABEL), config.changeAction && typeof onChange === 'function' && /*#__PURE__*/_react.default.createElement(_copReactComponents.Button, {
187
+ }, DEFAULT_EDIT_LABEL), config.changeAction && typeof onFullEdit === 'function' && /*#__PURE__*/_react.default.createElement(_copReactComponents.Button, {
178
188
  id: "".concat(id, ".changeButton"),
179
189
  onClick: function onClick() {
180
190
  var _config$changeAction;
181
- return onChange((_config$changeAction = config.changeAction) === null || _config$changeAction === void 0 ? void 0 : _config$changeAction.page, entryData.id);
191
+ return onFullEdit((_config$changeAction = config.changeAction) === null || _config$changeAction === void 0 ? void 0 : _config$changeAction.page, entryData.id);
182
192
  },
183
193
  classModifiers: ((_config$changeAction2 = config.changeAction) === null || _config$changeAction2 === void 0 ? void 0 : _config$changeAction2.classModifiers) || DEFAULT_CHANGE_BUTTON_CLASS
184
194
  }, ((_config$changeAction3 = config.changeAction) === null || _config$changeAction3 === void 0 ? void 0 : _config$changeAction3.label) || DEFAULT_CHANGE_BUTTON_LABEL), config.deleteAction && typeof onDelete === 'function' && /*#__PURE__*/_react.default.createElement(_copReactComponents.Button, {
@@ -218,11 +228,9 @@ SummaryCard.propTypes = {
218
228
  index: _propTypes.default.number.isRequired
219
229
  }).isRequired,
220
230
  config: _propTypes.default.shape({
231
+ className: _propTypes.default.string,
221
232
  banners: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({})])),
222
- title: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.PropTypes.arrayOf(_propTypes.default.shape({
223
- title: _propTypes.default.string,
224
- show_when: _propTypes.default.arrayOf({})
225
- }))]),
233
+ title: _propTypes.default.string,
226
234
  details: _propTypes.default.string,
227
235
  changeAction: _propTypes.default.shape({
228
236
  label: _propTypes.default.string,
@@ -249,24 +257,22 @@ SummaryCard.propTypes = {
249
257
  })).isRequired
250
258
  }).isRequired,
251
259
  classModifiers: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.arrayOf(_propTypes.default.string)]),
252
- onChange: _propTypes.default.func,
260
+ onFullEdit: _propTypes.default.func,
253
261
  onDelete: _propTypes.default.func,
254
262
  onDuplicate: _propTypes.default.func,
255
263
  onQuickEdit: _propTypes.default.func,
256
264
  parentCollectionName: _propTypes.default.string.isRequired,
257
265
  childCollections: _propTypes.default.arrayOf(_propTypes.default.string),
258
266
  formData: _propTypes.default.shape({}).isRequired,
259
- hideDetails: _propTypes.default.bool,
260
- inError: _propTypes.default.bool
267
+ hideDetails: _propTypes.default.bool
261
268
  };
262
269
  SummaryCard.defaultProps = {
263
270
  classModifiers: null,
264
- onChange: null,
271
+ onFullEdit: null,
265
272
  onDelete: null,
266
273
  onDuplicate: null,
267
274
  onQuickEdit: null,
268
275
  childCollections: [],
269
- hideDetails: false,
270
- inError: false
276
+ hideDetails: false
271
277
  };
272
278
  var _default = exports.default = SummaryCard;