@ukhomeoffice/cop-react-form-renderer 4.59.0 → 4.61.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.
@@ -58,6 +58,7 @@ var FormPage = function FormPage(_ref) {
58
58
  onWrapperChange = _ref.onWrapperChange,
59
59
  onTopLevelChange = _ref.onTopLevelChange,
60
60
  onChange = _ref.onChange,
61
+ hashLink = _ref.hashLink,
61
62
  classBlock = _ref.classBlock,
62
63
  classModifiers = _ref.classModifiers,
63
64
  className = _ref.className;
@@ -115,7 +116,8 @@ var FormPage = function FormPage(_ref) {
115
116
  className: classes('page'),
116
117
  key: page.id
117
118
  }, (errors === null || errors === void 0 ? void 0 : errors.length) > 0 && /*#__PURE__*/_react.default.createElement(_copReactComponents.ErrorSummary, {
118
- errors: errors
119
+ errors: errors,
120
+ hashLink: hashLink
119
121
  }), page.title && /*#__PURE__*/_react.default.createElement(_copReactComponents.LargeHeading, null, _utils.default.interpolateString(page.title, page.formData)), page.components.filter(function (c) {
120
122
  return _utils.default.Component.show(c, page.formData);
121
123
  }).map(function (component, index) {
@@ -69,6 +69,7 @@ var FormRenderer = function FormRenderer(_ref) {
69
69
  hub = _ref.hub,
70
70
  cya = _ref.cya,
71
71
  data = _ref.data,
72
+ hashLink = _ref.hashLink,
72
73
  hooks = _ref.hooks,
73
74
  classBlock = _ref.classBlock,
74
75
  classModifiers = _ref.classModifiers,
@@ -91,6 +92,7 @@ var FormRenderer = function FormRenderer(_ref) {
91
92
  classBlock: classBlock,
92
93
  classModifiers: classModifiers,
93
94
  className: className,
95
+ hashLink: hashLink,
94
96
  hide_title: hide_title,
95
97
  summaryListClassModifiers: summaryListClassModifiers,
96
98
  noChangeAction: noChangeAction,
@@ -115,6 +117,7 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
115
117
  classBlock = _ref2.classBlock,
116
118
  classModifiers = _ref2.classModifiers,
117
119
  className = _ref2.className,
120
+ hashLink = _ref2.hashLink,
118
121
  hide_title = _ref2.hide_title,
119
122
  summaryListClassModifiers = _ref2.summaryListClassModifiers,
120
123
  noChangeAction = _ref2.noChangeAction,
@@ -254,8 +257,11 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
254
257
  }, [pages, hub, pageId, setFormState, type, goingBack, data, formState.page]); // Call the onFormLoad hook just when this component first renders.
255
258
 
256
259
  (0, _react.useEffect)(function () {
257
- setPagePoint(undefined);
258
- hooks.onFormLoad();
260
+ setPagePoint(undefined); // In case of refresh the current task needs to be reset
261
+
262
+ hooks.onFormLoad(function (currentTask) {
263
+ return setCurrentTask(currentTask);
264
+ });
259
265
  }, [hooks]);
260
266
  (0, _react.useEffect)(function () {
261
267
  setHubDetails(_hub);
@@ -357,9 +363,7 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
357
363
  break;
358
364
 
359
365
  case _models.PageAction.TYPES.SAVE_AND_NAVIGATE:
360
- var state = {
361
- 'fullPages': currentTask.fullPages
362
- };
366
+ var state = _objectSpread({}, currentTask);
363
367
 
364
368
  pageUpdate = function pageUpdate() {
365
369
  return _handlers.default.navigate(action, pageId, onPageChange, state);
@@ -490,6 +494,8 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
490
494
  });
491
495
  setCurrentTask(currentTask);
492
496
 
497
+ var state = _objectSpread({}, currentTask);
498
+
493
499
  if (currentTask.state === _models.TaskStates.TYPES.COMPLETE) {
494
500
  if (hubDetails !== null && hubDetails !== void 0 && hubDetails.noTaskCYAs) {
495
501
  var currentPage = data.formStatus.tasks[currentTask.name].currentPage;
@@ -497,19 +503,16 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
497
503
  } else if (currentTask.customCYA) {
498
504
  onPageChange(currentTask.customCYA);
499
505
  } else {
500
- onPageChange(_models.FormPages.CYA);
506
+ onPageChange(_models.FormPages.CYA, state);
501
507
  }
502
508
  } else if (currentTask.state === _models.TaskStates.TYPES.IN_PROGRESS) {
503
509
  var _currentPage = data.formStatus.tasks[currentTask.name].currentPage;
504
- var state = {
505
- 'fullPages': currentTask.fullPages
506
- };
507
510
  onPageChange(_currentPage || currentTask.pages[0], state);
508
511
  } else if (currentTask.firstPage) {
509
512
  var _currentPage2 = currentTask.firstPage;
510
- onPageChange(_currentPage2 || currentTask.pages[0]);
513
+ onPageChange(_currentPage2 || currentTask.pages[0], state);
511
514
  } else {
512
- onPageChange(currentTask.pages[0]);
515
+ onPageChange(currentTask.pages[0], state);
513
516
  }
514
517
  }
515
518
  }; // Handle actions from "Check your answers".
@@ -646,7 +649,8 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
646
649
  })), formState.page && !formState.cya && !formState.page.collection && /*#__PURE__*/_react.default.createElement(_FormPage.default, {
647
650
  page: formState.page,
648
651
  onAction: onPageAction,
649
- onChange: onChange
652
+ onChange: onChange,
653
+ hashLink: hashLink
650
654
  }), formState.page && !formState.cya && formState.page.collection && /*#__PURE__*/_react.default.createElement(_CollectionPage.default, {
651
655
  page: formState.page,
652
656
  onAction: onPageAction
@@ -660,6 +664,7 @@ FormRenderer.propTypes = InternalFormRenderer.propTypes = {
660
664
  type: _propTypes.default.oneOf([_models.FormTypes.CYA, _models.FormTypes.FORM, _models.FormTypes.HUB, _models.FormTypes.TASK, _models.FormTypes.WIZARD, _models.FormTypes.TASK_CYA, _models.FormTypes.FORM_WITH_TASK]).isRequired,
661
665
  components: _propTypes.default.arrayOf(_propTypes.default.object).isRequired,
662
666
  pages: _propTypes.default.arrayOf(_propTypes.default.object).isRequired,
667
+ hashLink: _propTypes.default.bool,
663
668
  hub: _propTypes.default.object,
664
669
  cya: _propTypes.default.object,
665
670
  data: _propTypes.default.object,
@@ -678,6 +683,7 @@ FormRenderer.defaultProps = InternalFormRenderer.defaultProps = {
678
683
  pages: [],
679
684
  classBlock: DEFAULT_CLASS,
680
685
  classModifiers: [],
686
+ hashLink: false,
681
687
  hide_title: false,
682
688
  summaryListClassModifiers: [],
683
689
  noChangeAction: false,
@@ -32,11 +32,9 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
32
32
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
33
33
 
34
34
  var DEFAULT_HOOKS = {
35
- onChange: function onChange(data) {
36
- return data;
37
- },
35
+ onChange: function onChange(data) {},
38
36
  onFormComplete: function onFormComplete() {},
39
- onFormLoad: function onFormLoad() {},
37
+ onFormLoad: function onFormLoad(setCurrentTask) {},
40
38
  onGetComponent: function onGetComponent(config, wrap) {
41
39
  return null;
42
40
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ukhomeoffice/cop-react-form-renderer",
3
- "version": "4.59.0",
3
+ "version": "4.61.0",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "clean": "rimraf dist",
@@ -16,7 +16,7 @@
16
16
  "post-compile": "rimraf dist/*.test.* dist/**/*.test.* dist/**/*.stories.* dist/docs dist/assets"
17
17
  },
18
18
  "dependencies": {
19
- "@ukhomeoffice/cop-react-components": "2.10.0",
19
+ "@ukhomeoffice/cop-react-components": "^2.11.0",
20
20
  "axios": "^0.23.0",
21
21
  "dayjs": "^1.11.0",
22
22
  "govuk-frontend": "^4.3.1",
@@ -97,4 +97,4 @@
97
97
  "last 1 safari version"
98
98
  ]
99
99
  }
100
- }
100
+ }