@ukhomeoffice/cop-react-form-renderer 5.13.0 → 5.13.1

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.
@@ -101,7 +101,11 @@ var onCYAAction = function onCYAAction(setPagePoint, action, pages, validate, co
101
101
  onPageChange(_helpers.default.getNextPageId(type, pages, pageId, action, (_formState$page = formState.page) === null || _formState$page === void 0 ? void 0 : _formState$page.formData));
102
102
  }
103
103
  if (action.type === _models.PageAction.TYPES.CANCEL) {
104
- hooks.onCancel();
104
+ var formData = _utils.default.Format.form({
105
+ pages: pages,
106
+ components: components
107
+ }, _objectSpread({}, data), _models.EventTypes.CANCEL);
108
+ hooks.onCancel(formData);
105
109
  }
106
110
  };
107
111
  var _default = onCYAAction;
@@ -102,15 +102,15 @@ describe('components.FormRenderer.onCYAAction', function () {
102
102
  onFormComplete: function onFormComplete() {
103
103
  this.onFormCompleteCalls += 1;
104
104
  },
105
- onCancelCalls: 0,
106
- onCancel: function onCancel() {
107
- this.onCancelCalls += 1;
105
+ onCancelArgs: [],
106
+ onCancel: function onCancel(data) {
107
+ this.onCancelArgs.push(data);
108
108
  },
109
109
  reset: function reset() {
110
110
  this.onSubmitCalls = 0;
111
111
  this.onSubmitArgs = [];
112
112
  this.onFormCompleteCalls = 0;
113
- this.onCancelCalls = 0;
113
+ this.onCancelArgs = [];
114
114
  }
115
115
  };
116
116
  var setPagePointCalls = 0;
@@ -578,6 +578,9 @@ describe('components.FormRenderer.onCYAAction', function () {
578
578
  }
579
579
  });
580
580
  _onCYAAction.default.apply(void 0, Object.values(CUSTOM_ARGS));
581
- expect(MOCK_HOOKS.onCancelCalls).toEqual(1);
581
+ expect(MOCK_HOOKS.onCancelArgs.length).toEqual(1);
582
+ expect(MOCK_HOOKS.onCancelArgs[0]).toMatchObject({
583
+ id: 'formId'
584
+ });
582
585
  });
583
586
  });
@@ -20,11 +20,6 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
20
20
  // patchLabel captures non-ID values
21
21
  // for display purposes after submission.)
22
22
  var onPageAction = function onPageAction(action, patch, patchLabel, hooks, data, formState, validate, onPageChange, type, pages, components, pageId, setPagePoint, currentTask, setData, hubDetails, setSubmitted, addErrors) {
23
- if (action.type === _models.PageAction.TYPES.CANCEL) {
24
- hooks.onCancel();
25
- return;
26
- }
27
- ;
28
23
  // Save a copy of data in case submit errors and we need to revert
29
24
  var preSubmitData = _objectSpread({}, data);
30
25
  var form = formState;
@@ -36,6 +31,14 @@ var onPageAction = function onPageAction(action, patch, patchLabel, hooks, data,
36
31
  // This should normally have no effect but will prevent issues
37
32
  // with validation if formData happens to have been wiped.
38
33
  form.page.formData = _objectSpread(_objectSpread({}, form.page.formData), _patch);
34
+
35
+ // Exposes form data to consuming application.
36
+ if (action.type === _models.PageAction.TYPES.CANCEL) {
37
+ hooks.onCancel(form.page.formData);
38
+ return;
39
+ }
40
+ ;
41
+
39
42
  // Check to see whether the action is able to proceed, which in
40
43
  // in the case of a submission will validate the fields in the page.
41
44
  if (_helpers.default.canActionProceed(action, form.page, validate.page)) {
@@ -121,15 +121,15 @@ describe('components.FormRenderer.onPageAction', function () {
121
121
  onFormComplete: function onFormComplete() {
122
122
  this.onFormCompleteCalls += 1;
123
123
  },
124
- onCancelCalls: 0,
125
- onCancel: function onCancel() {
126
- this.onCancelCalls += 1;
124
+ onCancelArgs: [],
125
+ onCancel: function onCancel(data) {
126
+ this.onCancelArgs.push(data);
127
127
  },
128
128
  reset: function reset() {
129
129
  this.onSubmitCalls = 0;
130
130
  this.onSubmitArgs = [];
131
131
  this.onFormCompleteCalls = 0;
132
- this.onCancelCalls = 0;
132
+ this.onCancelArgs = [];
133
133
  this.onActionCalls = 0;
134
134
  },
135
135
  onActionCalls: 0,
@@ -290,7 +290,8 @@ describe('components.FormRenderer.onPageAction', function () {
290
290
  action: ACTION
291
291
  });
292
292
  _onPageAction.default.apply(void 0, Object.values(CUSTOM_ARGS));
293
- expect(MOCK_HOOKS.onCancelCalls).toEqual(1);
293
+ expect(MOCK_HOOKS.onCancelArgs.length).toEqual(1);
294
+ expect(MOCK_HOOKS.onCancelArgs[0]).toMatchObject({});
294
295
  // Shouldn't get to the point of validation if
295
296
  // action is a cancel action.
296
297
  expect(_helpers.default.canActionProceedCalls).toEqual(0);
@@ -56,7 +56,7 @@ var DEFAULT_HOOKS = {
56
56
  return errors;
57
57
  },
58
58
  // Returns the list of errors already found in FR by default.
59
- onCancel: function onCancel() {} // Consuming application must provide function to action, else this does nothing.
59
+ onCancel: function onCancel(data) {} // Consuming application must provide function to action, else this does nothing.
60
60
  };
61
61
 
62
62
  var ALLOWED_HOOKS = Object.keys(DEFAULT_HOOKS);
@@ -6,9 +6,11 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var TYPE_BLUR = 'blur';
8
8
  var TYPE_SUBMIT = 'submit';
9
+ var TYPE_CANCEL = 'cancel';
9
10
  var EventTypes = {
10
11
  BLUR: TYPE_BLUR,
11
- SUBMIT: TYPE_SUBMIT
12
+ SUBMIT: TYPE_SUBMIT,
13
+ CANCEL: TYPE_CANCEL
12
14
  };
13
15
  var _default = EventTypes;
14
16
  exports.default = _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ukhomeoffice/cop-react-form-renderer",
3
- "version": "5.13.0",
3
+ "version": "5.13.1",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "clean": "rimraf dist",