@ukhomeoffice/cop-react-form-renderer 3.21.0 → 3.22.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.
- package/dist/components/FormRenderer/FormRenderer.js +13 -3
- package/dist/components/FormRenderer/helpers/getCYA.js +11 -1
- package/dist/components/FormRenderer/helpers/getCYA.test.js +13 -4
- package/dist/components/FormRenderer/helpers/getFormState.js +1 -1
- package/dist/components/FormRenderer/helpers/getRelevantPages.js +27 -0
- package/dist/components/FormRenderer/helpers/getRelevantPages.test.js +71 -0
- package/dist/components/FormRenderer/helpers/index.js +3 -0
- package/dist/models/FormPages.js +3 -1
- package/dist/utils/CheckYourAnswers/getCYARowsForCollection.js +3 -1
- package/package.json +1 -1
|
@@ -101,6 +101,8 @@ var DEFAULT_CLASS = 'hods-form';
|
|
|
101
101
|
exports.DEFAULT_CLASS = DEFAULT_CLASS;
|
|
102
102
|
|
|
103
103
|
var InternalFormRenderer = function InternalFormRenderer(_ref2) {
|
|
104
|
+
var _formState$page2;
|
|
105
|
+
|
|
104
106
|
var title = _ref2.title,
|
|
105
107
|
type = _ref2.type,
|
|
106
108
|
components = _ref2.components,
|
|
@@ -414,6 +416,12 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
|
|
|
414
416
|
}
|
|
415
417
|
}
|
|
416
418
|
|
|
419
|
+
if (action.type === _models.PageAction.TYPES.NAVIGATE) {
|
|
420
|
+
var _formState$page;
|
|
421
|
+
|
|
422
|
+
onPageChange(_helpers.default.getNextPageId(type, pages, pageId, action, (_formState$page = formState.page) === null || _formState$page === void 0 ? void 0 : _formState$page.formData));
|
|
423
|
+
}
|
|
424
|
+
|
|
417
425
|
if (action.type === _models.PageAction.TYPES.CANCEL) {
|
|
418
426
|
hooks.onCancel();
|
|
419
427
|
}
|
|
@@ -428,8 +436,10 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
|
|
|
428
436
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
429
437
|
className: classes()
|
|
430
438
|
}, title && !hide_title && pageId === _models.FormPages.HUB && /*#__PURE__*/_react.default.createElement(_copReactComponents.LargeHeading, null, title), formState.cya && /*#__PURE__*/_react.default.createElement(_CheckYourAnswers.default, _extends({
|
|
431
|
-
pages:
|
|
432
|
-
}, cya, formState.
|
|
439
|
+
pages: _helpers.default.getRelevantPages(formState, pages, currentTask.fullPages)
|
|
440
|
+
}, cya, ((_formState$page2 = formState.page) === null || _formState$page2 === void 0 ? void 0 : _formState$page2.type) === _models.FormPages.PARTIAL_CYA && {
|
|
441
|
+
actions: formState.page.actions
|
|
442
|
+
}, formState.cya, {
|
|
433
443
|
onAction: onCYAAction,
|
|
434
444
|
onRowAction: onCYARowAction,
|
|
435
445
|
summaryListClassModifiers: summaryListClassModifiers,
|
|
@@ -442,7 +452,7 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
|
|
|
442
452
|
refNumber: data['businessKey'],
|
|
443
453
|
refTitle: _hub.refTitle,
|
|
444
454
|
onTaskAction: onTaskAction
|
|
445
|
-
}), formState.page && /*#__PURE__*/_react.default.createElement(_FormPage.default, {
|
|
455
|
+
}), formState.page && !formState.cya && /*#__PURE__*/_react.default.createElement(_FormPage.default, {
|
|
446
456
|
page: formState.page,
|
|
447
457
|
onAction: onPageAction
|
|
448
458
|
}));
|
|
@@ -15,7 +15,7 @@ var _models = require("../../../models");
|
|
|
15
15
|
* @param {object} hub The hub, if there is one.
|
|
16
16
|
* @returns A configuration object for the Check your answers screen.
|
|
17
17
|
*/
|
|
18
|
-
var getCYA = function getCYA(pageId, hub) {
|
|
18
|
+
var getCYA = function getCYA(pageId, pages, hub) {
|
|
19
19
|
if (pageId === _models.FormPages.HUB && hub === _models.HubFormats.CYA) {
|
|
20
20
|
return {
|
|
21
21
|
title: ''
|
|
@@ -24,6 +24,16 @@ var getCYA = function getCYA(pageId, hub) {
|
|
|
24
24
|
return {};
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
+
var currentPage = pages === null || pages === void 0 ? void 0 : pages.find(function (p) {
|
|
28
|
+
return p.id === pageId;
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
if ((currentPage === null || currentPage === void 0 ? void 0 : currentPage.type) === _models.FormPages.PARTIAL_CYA) {
|
|
32
|
+
return {
|
|
33
|
+
title: currentPage.title
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
|
|
27
37
|
return undefined;
|
|
28
38
|
};
|
|
29
39
|
|
|
@@ -19,18 +19,27 @@ describe('components', function () {
|
|
|
19
19
|
expect((0, _getCYA.default)(_models.FormPages.CYA)).toEqual({});
|
|
20
20
|
});
|
|
21
21
|
it('should give an object with a blank title if the pageId is "hub" and the hub is the CYA', function () {
|
|
22
|
-
expect((0, _getCYA.default)(_models.FormPages.HUB, _models.HubFormats.CYA)).toEqual({
|
|
22
|
+
expect((0, _getCYA.default)(_models.FormPages.HUB, [], _models.HubFormats.CYA)).toEqual({
|
|
23
23
|
title: ''
|
|
24
24
|
});
|
|
25
25
|
});
|
|
26
26
|
it('should give undefined if pageId is "hub" and the hub is NOT the CYA', function () {
|
|
27
|
-
expect((0, _getCYA.default)(_models.FormPages.HUB, HUB)).toBeUndefined();
|
|
27
|
+
expect((0, _getCYA.default)(_models.FormPages.HUB, [], HUB)).toBeUndefined();
|
|
28
28
|
});
|
|
29
29
|
it('should give undefined if pageId is NOT "hub" and the hub is NOT the CYA', function () {
|
|
30
|
-
expect((0, _getCYA.default)(_models.FormPages.HUB, HUB)).toBeUndefined();
|
|
30
|
+
expect((0, _getCYA.default)(_models.FormPages.HUB, [], HUB)).toBeUndefined();
|
|
31
31
|
});
|
|
32
32
|
it('should give undefined if pageId is NOT "hub" and the hub is the CYA', function () {
|
|
33
|
-
expect((0, _getCYA.default)('bob', _models.HubFormats.CYA)).toBeUndefined();
|
|
33
|
+
expect((0, _getCYA.default)('bob', [], _models.HubFormats.CYA)).toBeUndefined();
|
|
34
|
+
});
|
|
35
|
+
it('should return an object with a title if the current page has type partial-cya', function () {
|
|
36
|
+
expect((0, _getCYA.default)('pageId', [{
|
|
37
|
+
id: 'pageId',
|
|
38
|
+
type: 'partial-cya',
|
|
39
|
+
title: 'page title'
|
|
40
|
+
}], _models.HubFormats.CYA)).toEqual({
|
|
41
|
+
title: 'page title'
|
|
42
|
+
});
|
|
34
43
|
});
|
|
35
44
|
});
|
|
36
45
|
});
|
|
@@ -23,7 +23,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
23
23
|
var getFormState = function getFormState(pageId, pages, hub) {
|
|
24
24
|
return {
|
|
25
25
|
pageId: pageId,
|
|
26
|
-
cya: (0, _getCYA.default)(pageId, hub),
|
|
26
|
+
cya: (0, _getCYA.default)(pageId, pages, hub),
|
|
27
27
|
page: (0, _getPage.default)(pageId, pages, hub)
|
|
28
28
|
};
|
|
29
29
|
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _models = require("../../../models");
|
|
9
|
+
|
|
10
|
+
var slicePages = function slicePages(pages, currentPageId) {
|
|
11
|
+
return pages.slice(0, pages.findIndex(function (p) {
|
|
12
|
+
return p.pageId === currentPageId;
|
|
13
|
+
}));
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
var getRelevantPages = function getRelevantPages(formState, pages, currentTaskPages) {
|
|
17
|
+
var _formState$page;
|
|
18
|
+
|
|
19
|
+
if (((_formState$page = formState.page) === null || _formState$page === void 0 ? void 0 : _formState$page.type) === _models.FormPages.PARTIAL_CYA) {
|
|
20
|
+
return currentTaskPages ? slicePages(currentTaskPages, formState.pageId) : slicePages(pages, formState.pageId);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
return currentTaskPages ? currentTaskPages : pages;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
var _default = getRelevantPages;
|
|
27
|
+
exports.default = _default;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _models = require("../../../models");
|
|
4
|
+
|
|
5
|
+
var _getRelevantPages = _interopRequireDefault(require("../helpers/getRelevantPages"));
|
|
6
|
+
|
|
7
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
8
|
+
|
|
9
|
+
// Local imports
|
|
10
|
+
describe('components', function () {
|
|
11
|
+
describe('FormRenderer', function () {
|
|
12
|
+
describe('helpers', function () {
|
|
13
|
+
describe('getRelevantPages', function () {
|
|
14
|
+
var pages = [{
|
|
15
|
+
pageId: 'page1'
|
|
16
|
+
}, {
|
|
17
|
+
pageId: 'page2'
|
|
18
|
+
}, {
|
|
19
|
+
pageId: 'page3'
|
|
20
|
+
}, {
|
|
21
|
+
pageId: 'page4'
|
|
22
|
+
}, {
|
|
23
|
+
pageId: 'page5'
|
|
24
|
+
}];
|
|
25
|
+
var taskListPages = [{
|
|
26
|
+
pageId: 'taskPage1'
|
|
27
|
+
}, {
|
|
28
|
+
pageId: 'taskPage2'
|
|
29
|
+
}, {
|
|
30
|
+
pageId: 'taskPage3'
|
|
31
|
+
}, {
|
|
32
|
+
pageId: 'taskPage4'
|
|
33
|
+
}, {
|
|
34
|
+
pageId: 'taskPage5'
|
|
35
|
+
}];
|
|
36
|
+
it('return all pages from the start of the given list to the current page outside of a task when the page type is partial-cya', function () {
|
|
37
|
+
var formState = {
|
|
38
|
+
page: {
|
|
39
|
+
type: _models.FormPages.PARTIAL_CYA
|
|
40
|
+
},
|
|
41
|
+
pageId: 'page3'
|
|
42
|
+
};
|
|
43
|
+
expect((0, _getRelevantPages.default)(formState, pages, undefined)).toEqual(pages.slice(0, 2));
|
|
44
|
+
});
|
|
45
|
+
it('return all pages from the start of the given list to the current page in a task when the page type is partial-cya', function () {
|
|
46
|
+
var formState = {
|
|
47
|
+
page: {
|
|
48
|
+
type: _models.FormPages.PARTIAL_CYA
|
|
49
|
+
},
|
|
50
|
+
pageId: 'taskPage4'
|
|
51
|
+
};
|
|
52
|
+
expect((0, _getRelevantPages.default)(formState, pages, taskListPages)).toEqual(taskListPages.slice(0, 3));
|
|
53
|
+
});
|
|
54
|
+
it('return all pages when the page type is not partial-cya', function () {
|
|
55
|
+
var formState = {
|
|
56
|
+
page: {},
|
|
57
|
+
pageId: 'page2'
|
|
58
|
+
};
|
|
59
|
+
expect((0, _getRelevantPages.default)(formState, pages, undefined)).toEqual(pages);
|
|
60
|
+
});
|
|
61
|
+
it('return all task pages when the page type is not partial-cya', function () {
|
|
62
|
+
var formState = {
|
|
63
|
+
page: {},
|
|
64
|
+
pageId: 'taskPage2'
|
|
65
|
+
};
|
|
66
|
+
expect((0, _getRelevantPages.default)(formState, pages, taskListPages)).toEqual(taskListPages);
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
});
|
|
@@ -13,6 +13,8 @@ var _cleanHiddenNestedData = _interopRequireDefault(require("./cleanHiddenNested
|
|
|
13
13
|
|
|
14
14
|
var _getFormState = _interopRequireDefault(require("./getFormState"));
|
|
15
15
|
|
|
16
|
+
var _getRelevantPages = _interopRequireDefault(require("./getRelevantPages"));
|
|
17
|
+
|
|
16
18
|
var _getNextPageId = _interopRequireDefault(require("./getNextPageId"));
|
|
17
19
|
|
|
18
20
|
var _getPage = _interopRequireDefault(require("./getPage"));
|
|
@@ -29,6 +31,7 @@ var helpers = {
|
|
|
29
31
|
canCYASubmit: _canCYASubmit.default,
|
|
30
32
|
cleanHiddenNestedData: _cleanHiddenNestedData.default,
|
|
31
33
|
getFormState: _getFormState.default,
|
|
34
|
+
getRelevantPages: _getRelevantPages.default,
|
|
32
35
|
getNextPageId: _getNextPageId.default,
|
|
33
36
|
getPage: _getPage.default,
|
|
34
37
|
getSubmissionStatus: _getSubmissionStatus.default,
|
package/dist/models/FormPages.js
CHANGED
|
@@ -6,9 +6,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var PAGE_CYA = 'cya';
|
|
8
8
|
var PAGE_HUB = 'hub';
|
|
9
|
+
var PAGE_PARTIAL_CYA = 'partial-cya';
|
|
9
10
|
var FormPages = {
|
|
10
11
|
CYA: PAGE_CYA,
|
|
11
|
-
HUB: PAGE_HUB
|
|
12
|
+
HUB: PAGE_HUB,
|
|
13
|
+
PARTIAL_CYA: PAGE_PARTIAL_CYA
|
|
12
14
|
};
|
|
13
15
|
var _default = FormPages;
|
|
14
16
|
exports.default = _default;
|
|
@@ -22,9 +22,11 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
22
22
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
23
23
|
|
|
24
24
|
var getEntryToCollectionRow = function getEntryToCollectionRow(page, onAction) {
|
|
25
|
+
var _page$components$0$la;
|
|
26
|
+
|
|
25
27
|
return [{
|
|
26
28
|
pageId: page.id,
|
|
27
|
-
key: page.components[0].labels.empty || 'Nothing entered',
|
|
29
|
+
key: ((_page$components$0$la = page.components[0].labels) === null || _page$components$0$la === void 0 ? void 0 : _page$components$0$la.empty) || 'Nothing entered',
|
|
28
30
|
required: page.required,
|
|
29
31
|
action: {
|
|
30
32
|
page: page.id,
|