@ukhomeoffice/cop-react-form-renderer 2.6.2 → 2.7.4
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/CheckYourAnswers/Answer.js +3 -1
- package/dist/components/CheckYourAnswers/Answer.test.js +3 -2
- package/dist/components/CheckYourAnswers/CheckYourAnswers.js +45 -5
- package/dist/components/CheckYourAnswers/CheckYourAnswers.scss +10 -0
- package/dist/components/CheckYourAnswers/CheckYourAnswers.stories.mdx +331 -269
- package/dist/components/CheckYourAnswers/CheckYourAnswers.test.js +74 -12
- package/dist/components/FormRenderer/FormRenderer.test.js +9 -9
- package/dist/components/FormRenderer/helpers/canActionProceed.js +1 -1
- package/dist/components/FormRenderer/helpers/canCYASubmit.js +1 -1
- package/dist/components/PageActions/ActionButton.js +2 -1
- package/dist/components/SummaryList/GroupAction.js +68 -0
- package/dist/components/SummaryList/GroupAction.test.js +94 -0
- package/dist/components/SummaryList/SummaryList.js +15 -4
- package/dist/components/SummaryList/SummaryList.scss +29 -5
- package/dist/components/SummaryList/SummaryList.test.js +47 -4
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.js +27 -0
- package/dist/components/SummaryList/helpers/getGroupActionAttributes.test.js +77 -0
- package/dist/components/TaskList/TaskList.js +4 -2
- package/dist/components/TaskList/TaskList.scss +11 -3
- package/dist/components/TaskList/TaskList.test.js +21 -15
- package/dist/json/groupOfRow.json +137 -0
- package/dist/json/groupOfRowData.json +15 -0
- package/dist/json/taskList.json +48 -11
- package/dist/models/PageAction.js +2 -1
- package/dist/models/TaskStates.js +4 -4
- package/dist/utils/Validate/validatePage.js +7 -6
- package/dist/utils/Validate/validatePage.test.js +60 -12
- package/package.json +2 -2
|
@@ -9,6 +9,8 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
9
9
|
|
|
10
10
|
var _react = _interopRequireDefault(require("react"));
|
|
11
11
|
|
|
12
|
+
var _VisuallyHidden = _interopRequireDefault(require("@ukhomeoffice/cop-react-components/dist/VisuallyHidden"));
|
|
13
|
+
|
|
12
14
|
var _FormComponent = _interopRequireDefault(require("../FormComponent"));
|
|
13
15
|
|
|
14
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -24,7 +26,7 @@ var Answer = function Answer(_ref) {
|
|
|
24
26
|
component = _ref.component;
|
|
25
27
|
|
|
26
28
|
if (!value) {
|
|
27
|
-
return null;
|
|
29
|
+
return /*#__PURE__*/_react.default.createElement(_VisuallyHidden.default, null, "No answer");
|
|
28
30
|
}
|
|
29
31
|
|
|
30
32
|
if (!component) {
|
|
@@ -29,9 +29,10 @@ describe('components', function () {
|
|
|
29
29
|
value: VALUE,
|
|
30
30
|
component: COMPONENT
|
|
31
31
|
})), container = _render.container;
|
|
32
|
-
expect(container.childNodes.length).toEqual(
|
|
32
|
+
expect(container.childNodes.length).toEqual(1);
|
|
33
|
+
expect(container.childNodes[0].textContent).toEqual('No answer');
|
|
33
34
|
|
|
34
|
-
case
|
|
35
|
+
case 5:
|
|
35
36
|
case "end":
|
|
36
37
|
return _context.stop();
|
|
37
38
|
}
|
|
@@ -64,7 +64,8 @@ var CheckYourAnswers = function CheckYourAnswers(_ref) {
|
|
|
64
64
|
hide_actions = _ref.hide_actions,
|
|
65
65
|
hide_title = _ref.hide_title,
|
|
66
66
|
summaryListClassModifiers = _ref.summaryListClassModifiers,
|
|
67
|
-
noChangeAction = _ref.noChangeAction
|
|
67
|
+
noChangeAction = _ref.noChangeAction,
|
|
68
|
+
groups = _ref.groups;
|
|
68
69
|
|
|
69
70
|
var _useState = (0, _react.useState)([]),
|
|
70
71
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -76,6 +77,11 @@ var CheckYourAnswers = function CheckYourAnswers(_ref) {
|
|
|
76
77
|
errors = _useState4[0],
|
|
77
78
|
setErrors = _useState4[1];
|
|
78
79
|
|
|
80
|
+
var _useState5 = (0, _react.useState)([]),
|
|
81
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
82
|
+
listOfGroups = _useState6[0],
|
|
83
|
+
setListOfGroups = _useState6[1];
|
|
84
|
+
|
|
79
85
|
(0, _react.useEffect)(function () {
|
|
80
86
|
var getRows = function getRows(page, pageIndex) {
|
|
81
87
|
var rows = _utils.default.CheckYourAnswers.getRows(page, onRowAction);
|
|
@@ -110,22 +116,56 @@ var CheckYourAnswers = function CheckYourAnswers(_ref) {
|
|
|
110
116
|
setErrors(errors);
|
|
111
117
|
};
|
|
112
118
|
|
|
119
|
+
(0, _react.useEffect)(function () {
|
|
120
|
+
var groupsList = function groupsList() {
|
|
121
|
+
var groupIds = [];
|
|
122
|
+
groups !== undefined && groups.length && groups.forEach(function (group) {
|
|
123
|
+
var groupedPageId = group.pageId;
|
|
124
|
+
groupIds.push(groupedPageId);
|
|
125
|
+
});
|
|
126
|
+
setListOfGroups(groupIds);
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
groupsList();
|
|
130
|
+
}, [setListOfGroups, groups]);
|
|
131
|
+
|
|
132
|
+
var isGroup = function isGroup(pageId) {
|
|
133
|
+
return listOfGroups.includes(pageId);
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
var getGroupForPage = function getGroupForPage(pageId) {
|
|
137
|
+
var groupAnswer;
|
|
138
|
+
groups !== undefined && groups.length && pageId !== undefined && groups.forEach(function (group) {
|
|
139
|
+
if (group.pageId === pageId) {
|
|
140
|
+
groupAnswer = group;
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
return groupAnswer;
|
|
144
|
+
};
|
|
145
|
+
|
|
113
146
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
114
147
|
className: DEFAULT_CLASS
|
|
115
148
|
}, title && !hide_title && /*#__PURE__*/_react.default.createElement(_copReactComponents.LargeHeading, {
|
|
116
149
|
key: "heading"
|
|
117
150
|
}, title), errors && errors.length > 0 && /*#__PURE__*/_react.default.createElement(_copReactComponents.ErrorSummary, {
|
|
118
151
|
errors: errors
|
|
119
|
-
}), pages && pages.map(function (page, pageIndex) {
|
|
120
|
-
var pageMarginBottom = isLastPage(pageIndex) ? DEFAULT_MARGIN_BOTTOM : listMarginBottom;
|
|
152
|
+
}), pages && pages.map(function (page, pageIndex, array) {
|
|
153
|
+
var pageMarginBottom = isLastPage(pageIndex) || isGroup(array[pageIndex].id) || isGroup(array[pageIndex + 1].id) ? DEFAULT_MARGIN_BOTTOM : listMarginBottom;
|
|
154
|
+
var currentGroup;
|
|
155
|
+
isGroup(page.id) && (currentGroup = getGroupForPage(page.id));
|
|
121
156
|
var className = "govuk-!-margin-bottom-".concat(pageMarginBottom);
|
|
157
|
+
var hideActionButtons;
|
|
158
|
+
isGroup(page.id) ? hideActionButtons = true : hideActionButtons = noChangeAction;
|
|
122
159
|
return /*#__PURE__*/_react.default.createElement(_react.Fragment, {
|
|
123
160
|
key: pageIndex
|
|
124
|
-
}, !hide_page_titles && page.title && /*#__PURE__*/_react.default.createElement(_copReactComponents.MediumHeading, null, page.title), /*#__PURE__*/_react.default.createElement(
|
|
161
|
+
}, !hide_page_titles && page.title && !isGroup(page.id) && /*#__PURE__*/_react.default.createElement(_copReactComponents.MediumHeading, null, page.title), isGroup(page.id) && /*#__PURE__*/_react.default.createElement("div", {
|
|
162
|
+
className: "group-title"
|
|
163
|
+
}, /*#__PURE__*/_react.default.createElement(_copReactComponents.MediumHeading, null, currentGroup.title ? currentGroup.title : page.title)), /*#__PURE__*/_react.default.createElement(_SummaryList.default, {
|
|
125
164
|
className: className,
|
|
126
165
|
rows: page.rows,
|
|
127
166
|
classModifiers: summaryListClassModifiers,
|
|
128
|
-
noChangeAction:
|
|
167
|
+
noChangeAction: hideActionButtons,
|
|
168
|
+
isGroup: isGroup(page.id)
|
|
129
169
|
}));
|
|
130
170
|
}), !hide_actions && /*#__PURE__*/_react.default.createElement(_PageActions.default, {
|
|
131
171
|
actions: actions,
|
|
@@ -1,2 +1,12 @@
|
|
|
1
1
|
@import "node_modules/govuk-frontend/govuk/_base";
|
|
2
2
|
@import "node_modules/govuk-frontend/govuk/overrides/spacing";
|
|
3
|
+
|
|
4
|
+
.govuk-link {
|
|
5
|
+
@include govuk-font($size: 19);
|
|
6
|
+
color: govuk-colour('blue');
|
|
7
|
+
cursor: pointer;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.group-title{
|
|
11
|
+
padding-right: 75px;
|
|
12
|
+
}
|