@ukhomeoffice/cop-react-form-renderer 4.11.0 → 4.12.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.
|
@@ -535,12 +535,10 @@ var InternalFormRenderer = function InternalFormRenderer(_ref2) {
|
|
|
535
535
|
noChangeAction: noChangeAction,
|
|
536
536
|
sections: typeof hubDetails !== 'undefined' ? hubDetails.sections : [],
|
|
537
537
|
type: type
|
|
538
|
-
})), hub === _models.HubFormats.TASK && formState.pageId === _models.FormPages.HUB && /*#__PURE__*/_react.default.createElement(_TaskList.default, {
|
|
539
|
-
|
|
540
|
-
refNumber: data['businessKey'],
|
|
541
|
-
refTitle: _hub.refTitle,
|
|
538
|
+
})), hub === _models.HubFormats.TASK && formState.pageId === _models.FormPages.HUB && /*#__PURE__*/_react.default.createElement(_TaskList.default, _extends({}, hubDetails, {
|
|
539
|
+
refNumber: data.businessKey,
|
|
542
540
|
onTaskAction: onTaskAction
|
|
543
|
-
}), formState.page && !formState.cya && !formState.page.collection && /*#__PURE__*/_react.default.createElement(_FormPage.default, {
|
|
541
|
+
})), formState.page && !formState.cya && !formState.page.collection && /*#__PURE__*/_react.default.createElement(_FormPage.default, {
|
|
544
542
|
page: formState.page,
|
|
545
543
|
onAction: onPageAction
|
|
546
544
|
}), formState.page && !formState.cya && formState.page.collection && /*#__PURE__*/_react.default.createElement(_CollectionPage.default, {
|
|
@@ -5,7 +5,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" =
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.default = exports.DEFAULT_CLASS = void 0;
|
|
8
|
+
exports.default = exports.DEFAULT_INCOMPLETE_TITLE = exports.DEFAULT_CLASS = void 0;
|
|
9
9
|
|
|
10
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
11
|
|
|
@@ -19,7 +19,7 @@ var _Task = _interopRequireDefault(require("./Task"));
|
|
|
19
19
|
|
|
20
20
|
require("./TaskList.scss");
|
|
21
21
|
|
|
22
|
-
var _excluded = ["refTitle", "refNumber", "sections", "fieldId", "onTaskAction", "classBlock", "classModifiers", "className"];
|
|
22
|
+
var _excluded = ["refTitle", "refNumber", "incompleteTitle", "sections", "fieldId", "onTaskAction", "classBlock", "classModifiers", "className"];
|
|
23
23
|
|
|
24
24
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
25
25
|
|
|
@@ -35,10 +35,13 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
|
|
|
35
35
|
|
|
36
36
|
var DEFAULT_CLASS = 'hods-task-list';
|
|
37
37
|
exports.DEFAULT_CLASS = DEFAULT_CLASS;
|
|
38
|
+
var DEFAULT_INCOMPLETE_TITLE = 'Incomplete form';
|
|
39
|
+
exports.DEFAULT_INCOMPLETE_TITLE = DEFAULT_INCOMPLETE_TITLE;
|
|
38
40
|
|
|
39
41
|
var TaskList = function TaskList(_ref) {
|
|
40
42
|
var refTitle = _ref.refTitle,
|
|
41
43
|
refNumber = _ref.refNumber,
|
|
44
|
+
incompleteTitle = _ref.incompleteTitle,
|
|
42
45
|
sections = _ref.sections,
|
|
43
46
|
fieldId = _ref.fieldId,
|
|
44
47
|
onTaskAction = _ref.onTaskAction,
|
|
@@ -67,7 +70,7 @@ var TaskList = function TaskList(_ref) {
|
|
|
67
70
|
|
|
68
71
|
return /*#__PURE__*/_react.default.createElement("div", _extends({}, attrs, {
|
|
69
72
|
className: classes()
|
|
70
|
-
}), refNumber && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("p", {
|
|
73
|
+
}), refNumber && refTitle && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("p", {
|
|
71
74
|
className: "govuk-body govuk-!-margin-bottom-0"
|
|
72
75
|
}, /*#__PURE__*/_react.default.createElement("strong", {
|
|
73
76
|
className: "tasklist-summary"
|
|
@@ -77,7 +80,7 @@ var TaskList = function TaskList(_ref) {
|
|
|
77
80
|
className: "govuk-body govuk-!-margin-bottom-0"
|
|
78
81
|
}, /*#__PURE__*/_react.default.createElement("strong", {
|
|
79
82
|
className: "tasklist-summary"
|
|
80
|
-
},
|
|
83
|
+
}, incompleteTitle)), /*#__PURE__*/_react.default.createElement("p", {
|
|
81
84
|
className: "govuk-body govuk-!-margin-bottom-7"
|
|
82
85
|
}, "You have completed ".concat(numberOfCompleteSections, " of ").concat(numberOfSections, " sections")), sections.map(function (section, index) {
|
|
83
86
|
return /*#__PURE__*/_react.default.createElement(_react.Fragment, {
|
|
@@ -97,8 +100,9 @@ var TaskList = function TaskList(_ref) {
|
|
|
97
100
|
};
|
|
98
101
|
|
|
99
102
|
TaskList.propTypes = {
|
|
100
|
-
refNumber: _propTypes.default.string,
|
|
101
103
|
refTitle: _propTypes.default.string,
|
|
104
|
+
refNumber: _propTypes.default.string,
|
|
105
|
+
incompleteTitle: _propTypes.default.string,
|
|
102
106
|
sections: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
103
107
|
name: _propTypes.default.string.isRequired,
|
|
104
108
|
tasks: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
@@ -113,7 +117,8 @@ TaskList.propTypes = {
|
|
|
113
117
|
className: _propTypes.default.string
|
|
114
118
|
};
|
|
115
119
|
TaskList.defaultProps = {
|
|
116
|
-
classBlock: DEFAULT_CLASS
|
|
120
|
+
classBlock: DEFAULT_CLASS,
|
|
121
|
+
incompleteTitle: DEFAULT_INCOMPLETE_TITLE
|
|
117
122
|
};
|
|
118
123
|
var _default = TaskList;
|
|
119
124
|
exports.default = _default;
|
|
@@ -55,3 +55,55 @@ selected to navigate to that task.
|
|
|
55
55
|
<Details summary="Properties" className="no-indent">
|
|
56
56
|
<ArgsTable of={ TaskList } />
|
|
57
57
|
</Details>
|
|
58
|
+
|
|
59
|
+
## With custom incomplete title
|
|
60
|
+
This can be specified within the `hub` portion of the form JSON:
|
|
61
|
+
```
|
|
62
|
+
{
|
|
63
|
+
...
|
|
64
|
+
hub: {
|
|
65
|
+
...
|
|
66
|
+
incompleteTitle: 'You still have work to do, it seems'
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
<Canvas withToolbar>
|
|
72
|
+
<Story name="With custom incomplete title">
|
|
73
|
+
{() => {
|
|
74
|
+
const onAction = (row) => {
|
|
75
|
+
console.log('action clicked', row);
|
|
76
|
+
};
|
|
77
|
+
const COP_REF = '123';
|
|
78
|
+
const REF_TITLE = 'COP reference number';
|
|
79
|
+
const INCOMPLETE_TITLE = 'You still have work to do, it seems'
|
|
80
|
+
const SECTIONS = [
|
|
81
|
+
{
|
|
82
|
+
name: 'Add event details',
|
|
83
|
+
tasks: [
|
|
84
|
+
{ name: 'Date, location and mode details', state: 'complete' },
|
|
85
|
+
{ name: 'Officer and agency details', state: 'inProgress' },
|
|
86
|
+
],
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
name: 'Add people details',
|
|
90
|
+
tasks: [
|
|
91
|
+
{ name: 'People details', state: 'complete' },
|
|
92
|
+
{ name: 'Immigration details', state: 'inProgress' },
|
|
93
|
+
{ name: 'Journey details', state: 'notStarted' },
|
|
94
|
+
],
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
name: 'Add item details',
|
|
98
|
+
tasks: [
|
|
99
|
+
{ name: 'Item details', state: 'cannotStartYet' },
|
|
100
|
+
{ name: 'Search and interception details', state: 'cannotStartYet' },
|
|
101
|
+
],
|
|
102
|
+
},
|
|
103
|
+
];
|
|
104
|
+
return (
|
|
105
|
+
<TaskList refNumber={COP_REF} refTitle={REF_TITLE} sections={SECTIONS} incompleteTitle={INCOMPLETE_TITLE} />
|
|
106
|
+
);
|
|
107
|
+
}}
|
|
108
|
+
</Story>
|
|
109
|
+
</Canvas>
|
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
+
|
|
3
5
|
var _react = require("@testing-library/react");
|
|
4
6
|
|
|
5
7
|
var _react2 = _interopRequireDefault(require("react"));
|
|
6
8
|
|
|
7
|
-
var _TaskList =
|
|
9
|
+
var _TaskList = _interopRequireWildcard(require("./TaskList"));
|
|
10
|
+
|
|
11
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
12
|
+
|
|
13
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
8
14
|
|
|
9
15
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
16
|
|
|
@@ -63,7 +69,7 @@ describe('components', function () {
|
|
|
63
69
|
expect(referenceNumber.textContent).toEqual('123');
|
|
64
70
|
var incompleteForm = container.childNodes[0].childNodes[2];
|
|
65
71
|
expect(incompleteForm.tagName).toEqual('P');
|
|
66
|
-
expect(incompleteForm.textContent).toEqual(
|
|
72
|
+
expect(incompleteForm.textContent).toEqual(_TaskList.DEFAULT_INCOMPLETE_TITLE);
|
|
67
73
|
var numComplete = container.childNodes[0].childNodes[3];
|
|
68
74
|
expect(numComplete.tagName).toEqual('P');
|
|
69
75
|
expect(numComplete.textContent).toEqual('You have completed 2 of 6 sections');
|
|
@@ -79,7 +85,7 @@ describe('components', function () {
|
|
|
79
85
|
var subSectionTwoList = container.childNodes[0].childNodes[7];
|
|
80
86
|
expect(subSectionTwoList.childNodes.length).toEqual(3);
|
|
81
87
|
});
|
|
82
|
-
it('should not show incomplete
|
|
88
|
+
it('should not show incomplete title if form is complete', function () {
|
|
83
89
|
var COP_REF = '123';
|
|
84
90
|
var REF_TITLE = 'COP reference number';
|
|
85
91
|
var sections = [{
|
|
@@ -163,6 +169,99 @@ describe('components', function () {
|
|
|
163
169
|
expect(subSectionOne.childNodes[0].textContent).toEqual('');
|
|
164
170
|
expect(subSectionOne.childNodes[1].textContent).toEqual('These are your tasks');
|
|
165
171
|
});
|
|
172
|
+
it('should not display the reference if there is no reference title', function () {
|
|
173
|
+
var COP_REF = '123';
|
|
174
|
+
var sections = [{
|
|
175
|
+
name: 'These are your tasks',
|
|
176
|
+
tasks: [{
|
|
177
|
+
name: 'Nice task',
|
|
178
|
+
state: 'complete',
|
|
179
|
+
pages: ['pageOne']
|
|
180
|
+
}, {
|
|
181
|
+
name: 'Ok task',
|
|
182
|
+
state: 'inProgress',
|
|
183
|
+
pages: ['pageTwo']
|
|
184
|
+
}, {
|
|
185
|
+
name: 'Terrible task',
|
|
186
|
+
state: 'notStarted',
|
|
187
|
+
pages: ['pageThree']
|
|
188
|
+
}]
|
|
189
|
+
}, {
|
|
190
|
+
name: 'These are your extra bonus tasks',
|
|
191
|
+
tasks: [{
|
|
192
|
+
name: 'Nice task',
|
|
193
|
+
state: 'complete',
|
|
194
|
+
pages: ['pageFour']
|
|
195
|
+
}, {
|
|
196
|
+
name: 'Ok task',
|
|
197
|
+
state: 'cannotStartYet',
|
|
198
|
+
pages: ['pageFive']
|
|
199
|
+
}, {
|
|
200
|
+
name: 'Terrible task',
|
|
201
|
+
state: 'cannotStartYet',
|
|
202
|
+
pages: ['pageSix']
|
|
203
|
+
}]
|
|
204
|
+
}];
|
|
205
|
+
|
|
206
|
+
var _render4 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_TaskList.default, {
|
|
207
|
+
refNumber: COP_REF,
|
|
208
|
+
sections: sections
|
|
209
|
+
})),
|
|
210
|
+
container = _render4.container;
|
|
211
|
+
|
|
212
|
+
expect(container.childNodes.length).toEqual(1);
|
|
213
|
+
expect(container.childNodes[0].childNodes.length).toEqual(6); // The first child is now the incomplete text.
|
|
214
|
+
|
|
215
|
+
var incompleteForm = container.childNodes[0].childNodes[0];
|
|
216
|
+
expect(incompleteForm.tagName).toEqual('P');
|
|
217
|
+
expect(incompleteForm.textContent).toEqual(_TaskList.DEFAULT_INCOMPLETE_TITLE);
|
|
218
|
+
});
|
|
219
|
+
it('should show the correct incomplete title', function () {
|
|
220
|
+
var INCOMPLETE_TITLE = 'Alpha Bravo';
|
|
221
|
+
var COP_REF = '123';
|
|
222
|
+
var sections = [{
|
|
223
|
+
name: 'These are your tasks',
|
|
224
|
+
tasks: [{
|
|
225
|
+
name: 'Nice task',
|
|
226
|
+
state: 'complete',
|
|
227
|
+
pages: ['pageOne']
|
|
228
|
+
}, {
|
|
229
|
+
name: 'Ok task',
|
|
230
|
+
state: 'inProgress',
|
|
231
|
+
pages: ['pageTwo']
|
|
232
|
+
}, {
|
|
233
|
+
name: 'Terrible task',
|
|
234
|
+
state: 'notStarted',
|
|
235
|
+
pages: ['pageThree']
|
|
236
|
+
}]
|
|
237
|
+
}, {
|
|
238
|
+
name: 'These are your extra bonus tasks',
|
|
239
|
+
tasks: [{
|
|
240
|
+
name: 'Nice task',
|
|
241
|
+
state: 'complete',
|
|
242
|
+
pages: ['pageFour']
|
|
243
|
+
}, {
|
|
244
|
+
name: 'Ok task',
|
|
245
|
+
state: 'cannotStartYet',
|
|
246
|
+
pages: ['pageFive']
|
|
247
|
+
}, {
|
|
248
|
+
name: 'Terrible task',
|
|
249
|
+
state: 'cannotStartYet',
|
|
250
|
+
pages: ['pageSix']
|
|
251
|
+
}]
|
|
252
|
+
}];
|
|
253
|
+
|
|
254
|
+
var _render5 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_TaskList.default, {
|
|
255
|
+
refNumber: COP_REF,
|
|
256
|
+
sections: sections,
|
|
257
|
+
incompleteTitle: INCOMPLETE_TITLE
|
|
258
|
+
})),
|
|
259
|
+
container = _render5.container; // The first child is now the incomplete text.
|
|
260
|
+
|
|
261
|
+
|
|
262
|
+
var incompleteForm = container.childNodes[0].childNodes[0];
|
|
263
|
+
expect(incompleteForm.textContent).toEqual(INCOMPLETE_TITLE);
|
|
264
|
+
});
|
|
166
265
|
});
|
|
167
266
|
it('should pass the the selected task to the given onTaskAction function', function () {
|
|
168
267
|
var COP_REF = '123';
|
|
@@ -190,13 +289,13 @@ describe('components', function () {
|
|
|
190
289
|
}]
|
|
191
290
|
}];
|
|
192
291
|
|
|
193
|
-
var
|
|
292
|
+
var _render6 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_TaskList.default, {
|
|
194
293
|
refNumber: COP_REF,
|
|
195
294
|
refTitle: REF_TITLE,
|
|
196
295
|
sections: sections,
|
|
197
296
|
onTaskAction: ON_CLICK
|
|
198
297
|
})),
|
|
199
|
-
container =
|
|
298
|
+
container = _render6.container;
|
|
200
299
|
|
|
201
300
|
var firstTask = container.childNodes[0].childNodes[5].childNodes[0].childNodes[0].childNodes[0];
|
|
202
301
|
var secondTask = container.childNodes[0].childNodes[5].childNodes[1].childNodes[0].childNodes[0];
|