@ukhomeoffice/cop-react-form-renderer 3.18.1 → 3.19.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.
|
@@ -88,6 +88,7 @@ var FormPage = function FormPage(_ref) {
|
|
|
88
88
|
label: _utils.default.interpolateString(action.label, page.formData)
|
|
89
89
|
}) : action;
|
|
90
90
|
});
|
|
91
|
+
page.formData = _objectSpread(_objectSpread({}, page.formData), patch);
|
|
91
92
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
92
93
|
className: classes('page'),
|
|
93
94
|
key: page.id
|
|
@@ -101,7 +102,7 @@ var FormPage = function FormPage(_ref) {
|
|
|
101
102
|
component: component,
|
|
102
103
|
onChange: onPageChange,
|
|
103
104
|
value: page.formData[component.fieldId] || patch[component.fieldId],
|
|
104
|
-
formData:
|
|
105
|
+
formData: page.formData
|
|
105
106
|
});
|
|
106
107
|
}), /*#__PURE__*/_react.default.createElement(_PageActions.default, {
|
|
107
108
|
actions: (_page$actions2 = page.actions) === null || _page$actions2 === void 0 ? void 0 : _page$actions2.filter(function (action) {
|
|
@@ -74,7 +74,8 @@ var FormRenderer = function FormRenderer(_ref) {
|
|
|
74
74
|
hide_title = _ref.hide_title,
|
|
75
75
|
summaryListClassModifiers = _ref.summaryListClassModifiers,
|
|
76
76
|
noChangeAction = _ref.noChangeAction,
|
|
77
|
-
newPageId = _ref.newPageId
|
|
77
|
+
newPageId = _ref.newPageId,
|
|
78
|
+
viewOnly = _ref.viewOnly;
|
|
78
79
|
return /*#__PURE__*/_react.default.createElement(_context.HooksContextProvider, {
|
|
79
80
|
overrides: hooks
|
|
80
81
|
}, /*#__PURE__*/_react.default.createElement(_context.ValidationContextProvider, null, /*#__PURE__*/_react.default.createElement(InternalFormRenderer, {
|
|
@@ -91,7 +92,8 @@ var FormRenderer = function FormRenderer(_ref) {
|
|
|
91
92
|
hide_title: hide_title,
|
|
92
93
|
summaryListClassModifiers: summaryListClassModifiers,
|
|
93
94
|
noChangeAction: noChangeAction,
|
|
94
|
-
newPageId: newPageId
|
|
95
|
+
newPageId: newPageId,
|
|
96
|
+
viewOnly: viewOnly
|
|
95
97
|
})));
|
|
96
98
|
};
|
|
97
99
|
|
|
@@ -112,7 +114,8 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
|
|
|
112
114
|
hide_title = _ref2.hide_title,
|
|
113
115
|
summaryListClassModifiers = _ref2.summaryListClassModifiers,
|
|
114
116
|
noChangeAction = _ref2.noChangeAction,
|
|
115
|
-
newPageId = _ref2.newPageId
|
|
117
|
+
newPageId = _ref2.newPageId,
|
|
118
|
+
viewOnly = _ref2.viewOnly;
|
|
116
119
|
|
|
117
120
|
// Set up the initial states.
|
|
118
121
|
var _useState = (0, _react.useState)({}),
|
|
@@ -153,7 +156,12 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
|
|
|
153
156
|
var _useState15 = (0, _react.useState)({}),
|
|
154
157
|
_useState16 = _slicedToArray(_useState15, 2),
|
|
155
158
|
hubDetails = _useState16[0],
|
|
156
|
-
setHubDetails = _useState16[1];
|
|
159
|
+
setHubDetails = _useState16[1];
|
|
160
|
+
|
|
161
|
+
var _useState17 = (0, _react.useState)('start'),
|
|
162
|
+
_useState18 = _slicedToArray(_useState17, 2),
|
|
163
|
+
pagePoint = _useState18[0],
|
|
164
|
+
setPagePoint = _useState18[1]; // Set up hooks.
|
|
157
165
|
|
|
158
166
|
|
|
159
167
|
var _useHooks = (0, _hooks.useHooks)(),
|
|
@@ -167,7 +175,7 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
|
|
|
167
175
|
|
|
168
176
|
|
|
169
177
|
(0, _react.useEffect)(function () {
|
|
170
|
-
if (components && _pages && _data) {
|
|
178
|
+
if (components && _pages && _data && (['start', 'end'].includes(pagePoint) || viewOnly)) {
|
|
171
179
|
var _data$formStatus;
|
|
172
180
|
|
|
173
181
|
setData(_utils.default.Data.setupForm(_pages, components, _data));
|
|
@@ -176,7 +184,7 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
|
|
|
176
184
|
setPageId(_data.formStatus.page);
|
|
177
185
|
}
|
|
178
186
|
}
|
|
179
|
-
}, [components, _pages, _data, setData]); // Setup pages.
|
|
187
|
+
}, [components, _pages, _data, setData, pagePoint, viewOnly]); // Setup pages.
|
|
180
188
|
|
|
181
189
|
(0, _react.useEffect)(function () {
|
|
182
190
|
setPages(_utils.default.FormPage.getAll(_pages, components, _objectSpread({}, data)));
|
|
@@ -197,6 +205,7 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
|
|
|
197
205
|
}, [pages, hub, pageId, setFormState]); // Call the onFormLoad hook just when this component first renders.
|
|
198
206
|
|
|
199
207
|
(0, _react.useEffect)(function () {
|
|
208
|
+
setPagePoint(undefined);
|
|
200
209
|
hooks.onFormLoad();
|
|
201
210
|
}, [hooks]);
|
|
202
211
|
(0, _react.useEffect)(function () {
|
|
@@ -267,11 +276,15 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
|
|
|
267
276
|
if (action.type === _models.PageAction.TYPES.NAVIGATE) {
|
|
268
277
|
_handlers.default.navigate(action, pageId, onPageChange);
|
|
269
278
|
} else {
|
|
270
|
-
|
|
279
|
+
if (action.type === 'submit') {
|
|
280
|
+
setPagePoint('end');
|
|
281
|
+
} // Save draft or submit.
|
|
282
|
+
|
|
283
|
+
|
|
271
284
|
var submissionData = _utils.default.Format.form({
|
|
272
285
|
pages: pages,
|
|
273
286
|
components: components
|
|
274
|
-
}, _objectSpread(_objectSpread({}, data), patch), _models.EventTypes.SUBMIT);
|
|
287
|
+
}, _objectSpread(_objectSpread(_objectSpread({}, data), patch), formState.page.formData), _models.EventTypes.SUBMIT);
|
|
275
288
|
|
|
276
289
|
submissionData.formStatus = _helpers.default.getSubmissionStatus(type, pages, pageId, action, submissionData, currentTask, true);
|
|
277
290
|
|
|
@@ -343,6 +356,8 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
|
|
|
343
356
|
// Check to see whether the action is able to proceed, which in
|
|
344
357
|
// in the case of a submission will validate the fields in the page.
|
|
345
358
|
if (action.type === _models.PageAction.TYPES.SUBMIT) {
|
|
359
|
+
setPagePoint('end');
|
|
360
|
+
|
|
346
361
|
if (_helpers.default.canCYASubmit(pages, validate.pages)) {
|
|
347
362
|
// Submit.
|
|
348
363
|
var submissionData = _utils.default.Format.form({
|
|
@@ -449,7 +464,8 @@ FormRenderer.propTypes = InternalFormRenderer.propTypes = {
|
|
|
449
464
|
className: _propTypes.default.string,
|
|
450
465
|
hide_title: _propTypes.default.bool,
|
|
451
466
|
summaryListClassModifiers: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.arrayOf(_propTypes.default.string)]),
|
|
452
|
-
noChangeAction: _propTypes.default.bool
|
|
467
|
+
noChangeAction: _propTypes.default.bool,
|
|
468
|
+
viewOnly: _propTypes.default.bool
|
|
453
469
|
};
|
|
454
470
|
FormRenderer.defaultProps = InternalFormRenderer.defaultProps = {
|
|
455
471
|
type: _models.FormTypes.HUB,
|
|
@@ -459,7 +475,8 @@ FormRenderer.defaultProps = InternalFormRenderer.defaultProps = {
|
|
|
459
475
|
classModifiers: [],
|
|
460
476
|
hide_title: false,
|
|
461
477
|
summaryListClassModifiers: [],
|
|
462
|
-
noChangeAction: false
|
|
478
|
+
noChangeAction: false,
|
|
479
|
+
viewOnly: true
|
|
463
480
|
};
|
|
464
481
|
var _default = FormRenderer;
|
|
465
482
|
exports.default = _default;
|
|
@@ -57,9 +57,13 @@ var getCheckboxes = function getCheckboxes(config) {
|
|
|
57
57
|
var getCalculation = function getCalculation(config) {
|
|
58
58
|
var calculatedValue = _Data.default.applyFormula(config);
|
|
59
59
|
|
|
60
|
+
if (!!calculatedValue) {
|
|
61
|
+
config.value = calculatedValue;
|
|
62
|
+
config.formData[config.fieldId] = "" + calculatedValue;
|
|
63
|
+
}
|
|
64
|
+
|
|
60
65
|
var attrs = (0, _cleanAttributes.default)(config, ['formula']);
|
|
61
66
|
return /*#__PURE__*/_react.default.createElement(_copReactComponents.TextInput, _extends({}, attrs, {
|
|
62
|
-
value: calculatedValue,
|
|
63
67
|
readOnly: true
|
|
64
68
|
}));
|
|
65
69
|
};
|