@aehrc/smart-forms-renderer 0.40.2 → 0.41.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.
Files changed (106) hide show
  1. package/lib/components/FormComponents/AttachmentItem/AttachmentItem.js +2 -3
  2. package/lib/components/FormComponents/AttachmentItem/AttachmentItem.js.map +1 -1
  3. package/lib/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateItem.js +1 -2
  4. package/lib/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateItem.js.map +1 -1
  5. package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.js +3 -4
  6. package/lib/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.js.map +1 -1
  7. package/lib/components/FormComponents/DecimalItem/DecimalItem.js +2 -3
  8. package/lib/components/FormComponents/DecimalItem/DecimalItem.js.map +1 -1
  9. package/lib/components/FormComponents/IntegerItem/IntegerItem.js +2 -3
  10. package/lib/components/FormComponents/IntegerItem/IntegerItem.js.map +1 -1
  11. package/lib/components/FormComponents/QuantityItem/QuantityItem.js +1 -2
  12. package/lib/components/FormComponents/QuantityItem/QuantityItem.js.map +1 -1
  13. package/lib/components/FormComponents/RepeatGroup/AddItemButton.d.ts +2 -2
  14. package/lib/components/FormComponents/RepeatGroup/RepeatGroup.js +2 -3
  15. package/lib/components/FormComponents/RepeatGroup/RepeatGroup.js.map +1 -1
  16. package/lib/components/FormComponents/RepeatGroup/RepeatGroupView.d.ts +2 -2
  17. package/lib/components/FormComponents/StringItem/StringItem.js +2 -3
  18. package/lib/components/FormComponents/StringItem/StringItem.js.map +1 -1
  19. package/lib/components/FormComponents/Tables/AddRowButton.d.ts +2 -2
  20. package/lib/components/FormComponents/Tables/GroupTable.js +3 -1
  21. package/lib/components/FormComponents/Tables/GroupTable.js.map +1 -1
  22. package/lib/components/FormComponents/TextItem/TextItem.js +2 -3
  23. package/lib/components/FormComponents/TextItem/TextItem.js.map +1 -1
  24. package/lib/components/FormComponents/UrlItem/UrlItem.js +2 -3
  25. package/lib/components/FormComponents/UrlItem/UrlItem.js.map +1 -1
  26. package/lib/components/Renderer/BaseRenderer.js +4 -3
  27. package/lib/components/Renderer/BaseRenderer.js.map +1 -1
  28. package/lib/hooks/useGroupTableRows.d.ts +4 -4
  29. package/lib/hooks/useGroupTableRows.js +3 -5
  30. package/lib/hooks/useGroupTableRows.js.map +1 -1
  31. package/lib/hooks/useInitialiseGroupTableRows.d.ts +4 -0
  32. package/lib/hooks/{useNumberInput.js → useInitialiseGroupTableRows.js} +16 -13
  33. package/lib/hooks/useInitialiseGroupTableRows.js.map +1 -0
  34. package/lib/hooks/useInitialiseRepeatGroups.d.ts +2 -2
  35. package/lib/interfaces/repeatGroup.interface.d.ts +1 -1
  36. package/lib/stores/questionnaireResponseStore.d.ts +3 -0
  37. package/lib/stores/questionnaireResponseStore.js +5 -0
  38. package/lib/stores/questionnaireResponseStore.js.map +1 -1
  39. package/lib/tests/test-data/removeIdSample.d.ts +3 -0
  40. package/lib/tests/test-data/removeIdSample.js +99 -0
  41. package/lib/tests/test-data/removeIdSample.js.map +1 -0
  42. package/lib/theme/Theme.js +0 -2
  43. package/lib/theme/Theme.js.map +1 -1
  44. package/lib/utils/calculatedExpression.js +4 -4
  45. package/lib/utils/calculatedExpression.js.map +1 -1
  46. package/lib/utils/extractObservation.d.ts +1 -0
  47. package/lib/utils/extractObservation.js +1 -1
  48. package/lib/utils/extractObservation.js.map +1 -1
  49. package/lib/utils/manageForm.js +1 -1
  50. package/lib/utils/manageForm.js.map +1 -1
  51. package/lib/utils/openChoice.js +3 -3
  52. package/lib/utils/openChoice.js.map +1 -1
  53. package/lib/utils/removeRepeatId.d.ts +2 -0
  54. package/lib/utils/removeRepeatId.js +85 -0
  55. package/lib/utils/removeRepeatId.js.map +1 -0
  56. package/lib/utils/repeatId.d.ts +0 -2
  57. package/lib/utils/repeatId.js +0 -68
  58. package/lib/utils/repeatId.js.map +1 -1
  59. package/lib/utils/repopulateItems.js +8 -8
  60. package/lib/utils/repopulateItems.js.map +1 -1
  61. package/package.json +6 -2
  62. package/src/components/FormComponents/AttachmentItem/AttachmentItem.tsx +2 -3
  63. package/src/components/FormComponents/DateTimeItems/CustomDateItem/CustomDateItem.tsx +1 -2
  64. package/src/components/FormComponents/DateTimeItems/CustomDateTimeItem/CustomDateTimeItem.tsx +3 -4
  65. package/src/components/FormComponents/DecimalItem/DecimalItem.tsx +2 -3
  66. package/src/components/FormComponents/IntegerItem/IntegerItem.tsx +2 -3
  67. package/src/components/FormComponents/QuantityItem/QuantityItem.tsx +1 -2
  68. package/src/components/FormComponents/RepeatGroup/AddItemButton.tsx +2 -2
  69. package/src/components/FormComponents/RepeatGroup/RepeatGroup.tsx +2 -3
  70. package/src/components/FormComponents/RepeatGroup/RepeatGroupView.tsx +2 -2
  71. package/src/components/FormComponents/StringItem/StringItem.tsx +2 -3
  72. package/src/components/FormComponents/Tables/AddRowButton.tsx +2 -2
  73. package/src/components/FormComponents/Tables/GroupTable.tsx +5 -5
  74. package/src/components/FormComponents/TextItem/TextItem.tsx +2 -3
  75. package/src/components/FormComponents/UrlItem/UrlItem.tsx +2 -3
  76. package/src/components/Renderer/BaseRenderer.tsx +4 -3
  77. package/src/hooks/useGroupTableRows.ts +4 -9
  78. package/src/hooks/{useInitialiseGroupTable.ts → useInitialiseGroupTableRows.ts} +15 -11
  79. package/src/hooks/useInitialiseRepeatGroups.ts +2 -2
  80. package/src/interfaces/repeatGroup.interface.ts +1 -1
  81. package/src/stores/questionnaireResponseStore.ts +7 -0
  82. package/src/stories/assets/questionnaires/QButtonTester.ts +117 -0
  83. package/src/stories/storybookWrappers/IdRemoverButtonForStorybook.tsx +3 -5
  84. package/{lib/hooks/useInitialiseGroupTable.js → src/tests/removeId.test.ts} +11 -14
  85. package/src/tests/test-data/removeIdSample.ts +101 -0
  86. package/src/theme/Theme.tsx +0 -2
  87. package/src/utils/calculatedExpression.ts +4 -4
  88. package/src/utils/extractObservation.ts +1 -1
  89. package/src/utils/manageForm.ts +1 -1
  90. package/src/utils/openChoice.ts +3 -3
  91. package/src/utils/removeRepeatId.ts +113 -0
  92. package/src/utils/repeatId.ts +0 -96
  93. package/src/utils/repopulateItems.ts +8 -8
  94. package/lib/hooks/useInitialiseGroupTable.d.ts +0 -4
  95. package/lib/hooks/useInitialiseGroupTable.js.map +0 -1
  96. package/lib/hooks/useNumberInput.d.ts +0 -3
  97. package/lib/hooks/useNumberInput.js.map +0 -1
  98. package/lib/hooks/useRepeatGroups.d.ts +0 -4
  99. package/lib/hooks/useRepeatGroups.js +0 -38
  100. package/lib/hooks/useRepeatGroups.js.map +0 -1
  101. package/lib/hooks/useStringInput.d.ts +0 -3
  102. package/lib/hooks/useStringInput.js +0 -32
  103. package/lib/hooks/useStringInput.js.map +0 -1
  104. package/src/hooks/useNumberInput.ts +0 -38
  105. package/src/hooks/useRepeatGroups.ts +0 -51
  106. package/src/hooks/useStringInput.ts +0 -39
@@ -14,19 +14,7 @@
14
14
  * See the License for the specific language governing permissions and
15
15
  * limitations under the License.
16
16
  */
17
- var __rest = (this && this.__rest) || function (s, e) {
18
- var t = {};
19
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
20
- t[p] = s[p];
21
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
22
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
23
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
24
- t[p[i]] = s[p[i]];
25
- }
26
- return t;
27
- };
28
17
  import { nanoid } from 'nanoid';
29
- import { getQrItemsIndex, mapQItemsIndex } from './mapItem';
30
18
  export function generateNewRepeatId(linkId) {
31
19
  return `${linkId}-repeat-${nanoid()}`;
32
20
  }
@@ -34,60 +22,4 @@ export function generateExistingRepeatId(linkId, index) {
34
22
  const paddedIndex = index.toString().padStart(6, '0');
35
23
  return `${linkId}-repeat-${paddedIndex}`;
36
24
  }
37
- export function removeInternalRepeatIdsRecursive(qItem, qrItemOrItems) {
38
- var _a, _b;
39
- // Process repeating group items separately
40
- const hasMultipleAnswers = Array.isArray(qrItemOrItems);
41
- if (hasMultipleAnswers) {
42
- return removeInternalRepeatIdsFromRepeatGroup(qItem, qrItemOrItems);
43
- }
44
- // At this point qrItemOrItems is a single QuestionnaireResponseItem
45
- const qrItem = qrItemOrItems;
46
- // Process items with child items
47
- const childQItems = (_a = qItem.item) !== null && _a !== void 0 ? _a : [];
48
- const childQrItems = (_b = qrItem === null || qrItem === void 0 ? void 0 : qrItem.item) !== null && _b !== void 0 ? _b : [];
49
- const updatedChildQrItems = [];
50
- if (childQItems.length > 0) {
51
- const indexMap = mapQItemsIndex(qItem);
52
- const qrItemsByIndex = getQrItemsIndex(childQItems, childQrItems, indexMap);
53
- // Iterate child items
54
- for (const [index, childQItem] of childQItems.entries()) {
55
- const childQRItemOrItems = qrItemsByIndex[index];
56
- const updatedChildQRItemOrItems = removeInternalRepeatIdsRecursive(childQItem, childQRItemOrItems !== null && childQRItemOrItems !== void 0 ? childQRItemOrItems : null);
57
- if (Array.isArray(updatedChildQRItemOrItems)) {
58
- if (updatedChildQRItemOrItems.length > 0) {
59
- updatedChildQrItems.push(...updatedChildQRItemOrItems);
60
- }
61
- continue;
62
- }
63
- if (updatedChildQRItemOrItems) {
64
- updatedChildQrItems.push(updatedChildQRItemOrItems);
65
- }
66
- }
67
- }
68
- // Construct updated qrItem
69
- return removeInternalRepeatIdsFromItem(qItem, qrItem, updatedChildQrItems);
70
- }
71
- function removeInternalRepeatIdsFromRepeatGroup(qItem, qrItems) {
72
- if (!qItem.item) {
73
- return [];
74
- }
75
- return qrItems
76
- .flatMap((childQrItem) => removeInternalRepeatIdsRecursive(qItem, childQrItem))
77
- .filter((childQRItem) => !!childQRItem);
78
- }
79
- function removeInternalRepeatIdsFromItem(qItem, qrItem, childQrItems) {
80
- var _a, _b;
81
- if (!qrItem) {
82
- return null;
83
- }
84
- // Remove internal repeatId from all answers
85
- const updatedAnswers = (_b = (_a = qrItem.answer) === null || _a === void 0 ? void 0 : _a.map(
86
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
87
- (_a) => {
88
- var { id } = _a, rest = __rest(_a, ["id"]);
89
- return Object.assign({}, rest);
90
- }).filter((answer) => !!answer && Object.keys(answer).length > 0)) !== null && _b !== void 0 ? _b : [];
91
- return Object.assign(Object.assign(Object.assign({ linkId: qItem.linkId }, (qItem.text && { text: qItem.text })), (childQrItems.length > 0 && { item: childQrItems })), (updatedAnswers.length > 0 && { answer: updatedAnswers }));
92
- }
93
25
  //# sourceMappingURL=repeatId.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"repeatId.js","sourceRoot":"","sources":["../../src/utils/repeatId.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repeatId.js","sourceRoot":"","sources":["../../src/utils/repeatId.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAChD,OAAO,GAAG,MAAM,WAAW,MAAM,EAAE,EAAE,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,MAAc,EAAE,KAAa;IACpE,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACtD,OAAO,GAAG,MAAM,WAAW,WAAW,EAAE,CAAC;AAC3C,CAAC"}
@@ -14,9 +14,6 @@
14
14
  * See the License for the specific language governing permissions and
15
15
  * limitations under the License.
16
16
  */
17
- import _isEqual from 'lodash/isEqual';
18
- import _intersection from 'lodash/intersection';
19
- import _difference from 'lodash/difference';
20
17
  import { containsTabs, isTabContainer } from './tabs';
21
18
  import { getShortText, isSpecificItemControl } from './itemControl';
22
19
  import { getQrItemsIndex, mapQItemsIndex } from './mapItem';
@@ -25,6 +22,9 @@ import { questionnaireResponseStore, questionnaireStore } from '../stores';
25
22
  import cloneDeep from 'lodash.clonedeep';
26
23
  import { createQuestionnaireResponseItemMap } from './questionnaireResponseStoreUtils/updatableResponseItems';
27
24
  import { getQuestionnaireItem, getSectionHeading } from './misc';
25
+ import difference from 'lodash.difference';
26
+ import intersection from 'lodash.intersection';
27
+ import isEqual from 'lodash.isequal';
28
28
  /**
29
29
  * Compare latest data from the server with the current QuestionnaireResponse and decide items to re-populate
30
30
  *
@@ -52,8 +52,8 @@ export function generateItemsToRepopulate(populatedResponse) {
52
52
  // Get linkIds that are different between current QRItems and populated QRItems
53
53
  // Doesn't work with repeat groups, but at the same time I'm not sure if it's needed, given you can't delete completely the first repeat group
54
54
  const populatedResponseItemMap = createQuestionnaireResponseItemMap(populatedResponse);
55
- const diffLinkIds = _difference(Object.keys(updatableResponseItems), Object.keys(populatedResponseItemMap));
56
- const diffLinkIdsWithInitialExpressions = _intersection(Object.keys(initialExpressions), diffLinkIds);
55
+ const diffLinkIds = difference(Object.keys(updatableResponseItems), Object.keys(populatedResponseItemMap));
56
+ const diffLinkIdsWithInitialExpressions = intersection(Object.keys(initialExpressions), diffLinkIds);
57
57
  for (const linkId of diffLinkIdsWithInitialExpressions) {
58
58
  if (linkId in updatableResponseItems) {
59
59
  itemsToRepopulate[linkId] = {
@@ -290,7 +290,7 @@ function retrieveSingleOldQRItem(qItem, oldQRItem, itemsToRepopulate) {
290
290
  if (!newQRItem) {
291
291
  return;
292
292
  }
293
- if (_isEqual(oldQRItem, newQRItem)) {
293
+ if (isEqual(oldQRItem, newQRItem)) {
294
294
  delete itemsToRepopulate[qItem.linkId];
295
295
  return;
296
296
  }
@@ -305,7 +305,7 @@ function retrieveRepeatGroupOldQRItems(qItem, oldQRItems, itemsToRepopulate) {
305
305
  if (!newQRItems) {
306
306
  return;
307
307
  }
308
- if (_isEqual(oldQRItems, newQRItems)) {
308
+ if (isEqual(oldQRItems, newQRItems)) {
309
309
  delete itemsToRepopulate[qItem.linkId];
310
310
  return;
311
311
  }
@@ -337,7 +337,7 @@ function retrieveGridGroupOldQRItems(qItem, gridChildQItems, oldGridQRItemsByInd
337
337
  if (!newGridChildQRItem) {
338
338
  continue;
339
339
  }
340
- if (_isEqual(oldGridChildQrItem, newGridChildQRItem)) {
340
+ if (isEqual(oldGridChildQrItem, newGridChildQRItem)) {
341
341
  newGridChildQRItemMap.delete(gridChildQItem.linkId);
342
342
  }
343
343
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"repopulateItems.js","sourceRoot":"","sources":["../../src/utils/repopulateItems.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repopulateItems.js","sourceRoot":"","sources":["../../src/utils/repopulateItems.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aehrc/smart-forms-renderer",
3
- "version": "0.40.2",
3
+ "version": "0.41.0",
4
4
  "description": "FHIR Structured Data Captured (SDC) rendering engine for Smart Forms",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -39,6 +39,7 @@
39
39
  "lodash.debounce": "^4.0.8",
40
40
  "lodash.difference": "^4.5.0",
41
41
  "lodash.intersection": "^4.4.0",
42
+ "lodash.isequal": "^4.5.0",
42
43
  "nanoid": "^5.0.7",
43
44
  "react-beautiful-dnd": "^13.1.1",
44
45
  "react-dnd": "^16.0.1",
@@ -79,7 +80,10 @@
79
80
  "@types/fhir": "^0.0.38",
80
81
  "@types/jest": "^29.5.12",
81
82
  "@types/lodash.clonedeep": "^4.5.9",
82
- "@types/lodash.debounce": "^4.0.7",
83
+ "@types/lodash.debounce": "^4.0.9",
84
+ "@types/lodash.difference": "^4.5.9",
85
+ "@types/lodash.intersection": "^4.4.9",
86
+ "@types/lodash.isequal": "^4.5.8",
83
87
  "@types/react": ">=17.0.0",
84
88
  "@types/react-beautiful-dnd": "^13.1.7",
85
89
  "@types/react-dom": ">=18.2.22",
@@ -26,7 +26,6 @@ import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
26
26
  import debounce from 'lodash.debounce';
27
27
  import { createEmptyQrItem } from '../../../utils/qrItem';
28
28
  import { DEBOUNCE_DURATION } from '../../../utils/debounce';
29
- import useStringInput from '../../../hooks/useStringInput';
30
29
  import useReadOnly from '../../../hooks/useReadOnly';
31
30
  import AttachmentFieldWrapper from './AttachmentFieldWrapper';
32
31
  import { HTML5Backend } from 'react-dnd-html5-backend';
@@ -61,8 +60,8 @@ function AttachmentItem(props: AttachmentItemProps) {
61
60
  }
62
61
 
63
62
  const [uploadedFile, setUploadedFile] = useState<File | null>(null);
64
- const [url, setUrl] = useStringInput(valueString);
65
- const [fileName, setFileName] = useStringInput(valueString);
63
+ const [url, setUrl] = useState(valueString);
64
+ const [fileName, setFileName] = useState(valueString);
66
65
 
67
66
  // Event handlers
68
67
  async function handleUploadFile(newUploadedFile: File | null) {
@@ -36,7 +36,6 @@ import { createEmptyQrItem } from '../../../../utils/qrItem';
36
36
  import useDateValidation from '../../../../hooks/useDateValidation';
37
37
  import CustomDateField from './CustomDateField';
38
38
  import { useQuestionnaireStore } from '../../../../stores';
39
- import useStringInput from '../../../../hooks/useStringInput';
40
39
 
41
40
  interface CustomDateItemProps
42
41
  extends PropsWithQrItemChangeHandler,
@@ -70,7 +69,7 @@ function CustomDateItem(props: CustomDateItemProps) {
70
69
 
71
70
  const { displayDate, dateParseFail } = parseFhirDateToDisplayDate(valueDate);
72
71
 
73
- const [input, setInput] = useStringInput(displayDate);
72
+ const [input, setInput] = useState(displayDate);
74
73
  const [focused, setFocused] = useState(false);
75
74
 
76
75
  // Perform validation checks
@@ -43,7 +43,6 @@ import {
43
43
  import useTimeValidation from '../../../../hooks/useTimeValidation';
44
44
  import useDateNonEmptyValidation from '../../../../hooks/useDateTimeNonEmpty';
45
45
  import DateTimeField from './DateTimeField';
46
- import useStringInput from '../../../../hooks/useStringInput';
47
46
 
48
47
  interface CustomDateTimeItemProps
49
48
  extends PropsWithQrItemChangeHandler,
@@ -88,9 +87,9 @@ function CustomDateTimeItem(props: CustomDateTimeItemProps) {
88
87
  const { displayDate, dateParseFail } = parseFhirDateToDisplayDate(valueDate);
89
88
  const { displayTime, displayPeriod, timeParseFail } = parseDateTimeToDisplayTime(dateTimeDayJs);
90
89
 
91
- const [dateInput, setDateInput] = useStringInput(displayDate);
92
- const [timeInput, setTimeInput] = useStringInput(displayTime);
93
- const [periodInput, setPeriodInput] = useStringInput(displayPeriod);
90
+ const [dateInput, setDateInput] = useState(displayDate);
91
+ const [timeInput, setTimeInput] = useState(displayTime);
92
+ const [periodInput, setPeriodInput] = useState(displayPeriod);
94
93
  const [dateFocused, setDateFocused] = useState(false);
95
94
 
96
95
  // Perform validation checks
@@ -15,7 +15,7 @@
15
15
  * limitations under the License.
16
16
  */
17
17
 
18
- import React, { useCallback } from 'react';
18
+ import React, { useCallback, useState } from 'react';
19
19
  import type {
20
20
  PropsWithIsRepeatedAttribute,
21
21
  PropsWithIsTabledAttribute,
@@ -37,7 +37,6 @@ import {
37
37
  } from '../../../utils/parseInputs';
38
38
  import { getDecimalPrecision } from '../../../utils/itemControl';
39
39
  import useDecimalCalculatedExpression from '../../../hooks/useDecimalCalculatedExpression';
40
- import useStringInput from '../../../hooks/useStringInput';
41
40
  import useReadOnly from '../../../hooks/useReadOnly';
42
41
  import { useQuestionnaireStore } from '../../../stores';
43
42
  import Box from '@mui/material/Box';
@@ -76,7 +75,7 @@ function DecimalItem(props: DecimalItemProps) {
76
75
  initialInput = precision ? valueDecimal.toFixed(precision) : valueDecimal.toString();
77
76
  }
78
77
 
79
- const [input, setInput] = useStringInput(initialInput);
78
+ const [input, setInput] = useState(initialInput);
80
79
 
81
80
  // Perform validation checks
82
81
  const feedback = useValidationFeedback(qItem, input);
@@ -15,7 +15,7 @@
15
15
  * limitations under the License.
16
16
  */
17
17
 
18
- import React, { useCallback } from 'react';
18
+ import React, { useCallback, useState } from 'react';
19
19
  import type {
20
20
  PropsWithIsRepeatedAttribute,
21
21
  PropsWithIsTabledAttribute,
@@ -35,7 +35,6 @@ import { parseIntegerString } from '../../../utils/parseInputs';
35
35
  import ItemFieldGrid from '../ItemParts/ItemFieldGrid';
36
36
  import useReadOnly from '../../../hooks/useReadOnly';
37
37
  import { useQuestionnaireStore } from '../../../stores';
38
- import useStringInput from '../../../hooks/useStringInput';
39
38
 
40
39
  interface IntegerItemProps
41
40
  extends PropsWithQrItemChangeHandler,
@@ -70,7 +69,7 @@ function IntegerItem(props: IntegerItemProps) {
70
69
  initialInput = valueInteger.toString();
71
70
  }
72
71
 
73
- const [input, setInput] = useStringInput(initialInput);
72
+ const [input, setInput] = useState(initialInput);
74
73
 
75
74
  // Perform validation checks
76
75
  const feedback = useValidationFeedback(qItem, input);
@@ -20,7 +20,6 @@ import { createEmptyQrItem } from '../../../utils/qrItem';
20
20
  import ItemFieldGrid from '../ItemParts/ItemFieldGrid';
21
21
  import { parseDecimalStringWithPrecision } from '../../../utils/parseInputs';
22
22
  import { getDecimalPrecision } from '../../../utils/itemControl';
23
- import useStringInput from '../../../hooks/useStringInput';
24
23
  import useReadOnly from '../../../hooks/useReadOnly';
25
24
  import { useQuestionnaireStore } from '../../../stores';
26
25
  import Box from '@mui/material/Box';
@@ -92,7 +91,7 @@ function QuantityItem(props: QuantityItemProps) {
92
91
  }
93
92
 
94
93
  // input states
95
- const [valueInput, setValueInput] = useStringInput(initialValueInput);
94
+ const [valueInput, setValueInput] = useState(initialValueInput);
96
95
  const [comparatorInput, setComparatorInput] = useState<Quantity['comparator'] | null>(
97
96
  initialComparatorInput
98
97
  );
@@ -19,10 +19,10 @@ import React from 'react';
19
19
  import Box from '@mui/material/Box';
20
20
  import Button from '@mui/material/Button';
21
21
  import AddIcon from '@mui/icons-material/Add';
22
- import type { RepeatGroupSingle } from '../../../interfaces/repeatGroup.interface';
22
+ import type { RepeatGroupSingleModel } from '../../../interfaces/repeatGroup.interface';
23
23
 
24
24
  interface AddItemButtonProps {
25
- repeatGroups: RepeatGroupSingle[];
25
+ repeatGroups: RepeatGroupSingleModel[];
26
26
  readOnly: boolean;
27
27
  onAddItem: () => void;
28
28
  }
@@ -15,7 +15,7 @@
15
15
  * limitations under the License.
16
16
  */
17
17
 
18
- import React from 'react';
18
+ import React, { useState } from 'react';
19
19
  import type {
20
20
  PropsWithParentIsReadOnlyAttribute,
21
21
  PropsWithParentIsRepeatGroupAttribute,
@@ -26,7 +26,6 @@ import type { QuestionnaireItem, QuestionnaireResponseItem } from 'fhir/r4';
26
26
  import useInitialiseRepeatGroups from '../../../hooks/useInitialiseRepeatGroups';
27
27
  import cloneDeep from 'lodash.clonedeep';
28
28
  import { useQuestionnaireStore } from '../../../stores';
29
- import useRepeatGroups from '../../../hooks/useRepeatGroups';
30
29
  import RepeatGroupView from './RepeatGroupView';
31
30
  import { generateNewRepeatId } from '../../../utils/repeatId';
32
31
 
@@ -60,7 +59,7 @@ function RepeatGroup(props: RepeatGroupProps) {
60
59
 
61
60
  const initialRepeatGroups = useInitialiseRepeatGroups(qItem.linkId, qrItems);
62
61
 
63
- const [repeatGroups, setRepeatGroups] = useRepeatGroups(initialRepeatGroups);
62
+ const [repeatGroups, setRepeatGroups] = useState(initialRepeatGroups);
64
63
 
65
64
  function handleAnswerChange(newQrItem: QuestionnaireResponseItem, index: number) {
66
65
  const updatedRepeatGroups = [...repeatGroups];
@@ -32,7 +32,7 @@ import RepeatGroupItem from './RepeatGroupItem';
32
32
  import AddItemButton from './AddItemButton';
33
33
  import LabelWrapper from '../ItemParts/ItemLabelWrapper';
34
34
  import Typography from '@mui/material/Typography';
35
- import type { RepeatGroupSingle } from '../../../interfaces/repeatGroup.interface';
35
+ import type { RepeatGroupSingleModel } from '../../../interfaces/repeatGroup.interface';
36
36
  import useReadOnly from '../../../hooks/useReadOnly';
37
37
  import { getGroupCollapsible } from '../../../utils/qItem';
38
38
  import { GroupAccordion } from '../GroupItem/GroupAccordion.styles';
@@ -45,7 +45,7 @@ interface RepeatGroupViewProps
45
45
  PropsWithParentIsReadOnlyAttribute,
46
46
  PropsWithParentIsRepeatGroupAttribute {
47
47
  qItem: QuestionnaireItem;
48
- repeatGroups: RepeatGroupSingle[];
48
+ repeatGroups: RepeatGroupSingleModel[];
49
49
  groupCardElevation: number;
50
50
  onAnswerChange: (newQrItem: QuestionnaireResponseItem, index: number) => void;
51
51
  onAddItem: () => void;
@@ -15,7 +15,7 @@
15
15
  * limitations under the License.
16
16
  */
17
17
 
18
- import React, { useCallback } from 'react';
18
+ import React, { useCallback, useState } from 'react';
19
19
  import type {
20
20
  PropsWithIsRepeatedAttribute,
21
21
  PropsWithIsTabledAttribute,
@@ -32,7 +32,6 @@ import { FullWidthFormComponentBox } from '../../Box.styles';
32
32
  import StringField from './StringField';
33
33
  import ItemFieldGrid from '../ItemParts/ItemFieldGrid';
34
34
  import useStringCalculatedExpression from '../../../hooks/useStringCalculatedExpression';
35
- import useStringInput from '../../../hooks/useStringInput';
36
35
  import useReadOnly from '../../../hooks/useReadOnly';
37
36
  import { useQuestionnaireStore } from '../../../stores';
38
37
 
@@ -59,7 +58,7 @@ function StringItem(props: StringItemProps) {
59
58
  valueString = qrItem.answer[0].valueString;
60
59
  }
61
60
 
62
- const [input, setInput] = useStringInput(valueString);
61
+ const [input, setInput] = useState(valueString);
63
62
 
64
63
  // Perform validation checks
65
64
  const feedback = useValidationFeedback(qItem, input);
@@ -19,10 +19,10 @@ import React from 'react';
19
19
  import Box from '@mui/material/Box';
20
20
  import Button from '@mui/material/Button';
21
21
  import AddIcon from '@mui/icons-material/Add';
22
- import type { RepeatGroupSingle } from '../../../interfaces/repeatGroup.interface';
22
+ import type { RepeatGroupSingleModel } from '../../../interfaces/repeatGroup.interface';
23
23
 
24
24
  interface AddItemButtonProps {
25
- repeatGroups: RepeatGroupSingle[];
25
+ repeatGroups: RepeatGroupSingleModel[];
26
26
  readOnly: boolean;
27
27
  onAddItem: () => void;
28
28
  }
@@ -32,6 +32,7 @@ import { getGroupTableItemsToUpdate } from '../../../utils/groupTable';
32
32
  import useGroupTableRows from '../../../hooks/useGroupTableRows';
33
33
  import { flushSync } from 'react-dom';
34
34
  import { generateNewRepeatId } from '../../../utils/repeatId';
35
+ import useInitialiseGroupTableRows from '../../../hooks/useInitialiseGroupTableRows';
35
36
 
36
37
  interface GroupTableProps
37
38
  extends PropsWithQrRepeatGroupChangeHandler,
@@ -60,12 +61,11 @@ function GroupTable(props: GroupTableProps) {
60
61
  onQrRepeatGroupChange
61
62
  } = props;
62
63
 
63
- const readOnly = useReadOnly(qItem, parentIsReadOnly);
64
+ const initialGroupTableRows = useInitialiseGroupTableRows(qItem.linkId, qrItems);
65
+ const { tableRows, selectedIds, setTableRows, setSelectedIds } =
66
+ useGroupTableRows(initialGroupTableRows);
64
67
 
65
- const { tableRows, selectedIds, setTableRows, setSelectedIds } = useGroupTableRows(
66
- qItem.linkId,
67
- qrItems
68
- );
68
+ const readOnly = useReadOnly(qItem, parentIsReadOnly);
69
69
 
70
70
  // Generate item labels as table headers
71
71
  const qItems = qItem.item;
@@ -15,7 +15,7 @@
15
15
  * limitations under the License.
16
16
  */
17
17
 
18
- import React, { useCallback } from 'react';
18
+ import React, { useCallback, useState } from 'react';
19
19
  import type {
20
20
  PropsWithIsRepeatedAttribute,
21
21
  PropsWithParentIsReadOnlyAttribute,
@@ -31,7 +31,6 @@ import { FullWidthFormComponentBox } from '../../Box.styles';
31
31
  import TextField from './TextField';
32
32
  import useStringCalculatedExpression from '../../../hooks/useStringCalculatedExpression';
33
33
  import ItemFieldGrid from '../ItemParts/ItemFieldGrid';
34
- import useStringInput from '../../../hooks/useStringInput';
35
34
  import useReadOnly from '../../../hooks/useReadOnly';
36
35
  import { useQuestionnaireStore } from '../../../stores';
37
36
 
@@ -58,7 +57,7 @@ function TextItem(props: TextItemProps) {
58
57
  valueText = qrItem.answer[0].valueString;
59
58
  }
60
59
 
61
- const [input, setInput] = useStringInput(valueText);
60
+ const [input, setInput] = useState(valueText);
62
61
 
63
62
  // Perform validation checks
64
63
  const feedback = useValidationFeedback(qItem, input);
@@ -15,7 +15,7 @@
15
15
  * limitations under the License.
16
16
  */
17
17
 
18
- import React, { useCallback } from 'react';
18
+ import React, { useCallback, useState } from 'react';
19
19
  import type {
20
20
  PropsWithIsRepeatedAttribute,
21
21
  PropsWithIsTabledAttribute,
@@ -33,7 +33,6 @@ import UrlField from './UrlField';
33
33
  import ItemFieldGrid from '../ItemParts/ItemFieldGrid';
34
34
  import useReadOnly from '../../../hooks/useReadOnly';
35
35
  import { useQuestionnaireStore } from '../../../stores';
36
- import useStringInput from '../../../hooks/useStringInput';
37
36
 
38
37
  interface UrlItemProps
39
38
  extends PropsWithQrItemChangeHandler,
@@ -58,7 +57,7 @@ function UrlItem(props: UrlItemProps) {
58
57
  valueUri = qrItem.answer[0].valueUri;
59
58
  }
60
59
 
61
- const [input, setInput] = useStringInput(valueUri);
60
+ const [input, setInput] = useState(valueUri);
62
61
 
63
62
  // Perform validation checks
64
63
  const feedback = useValidationFeedback(qItem, input);
@@ -16,7 +16,6 @@
16
16
  */
17
17
 
18
18
  import React, { useMemo } from 'react';
19
- import Container from '@mui/material/Container';
20
19
  import Fade from '@mui/material/Fade';
21
20
  import FormTopLevelItem from './FormTopLevelItem';
22
21
  import type { QuestionnaireResponse, QuestionnaireResponseItem } from 'fhir/r4';
@@ -27,6 +26,7 @@ import { updateQrItemsInGroup } from '../../utils/qrItem';
27
26
  import { everyIsPages } from '../../utils/page';
28
27
  import type { QrRepeatGroup } from '../../interfaces/repeatGroup.interface';
29
28
  import FormTopLevelPage from './FormTopLevelPage';
29
+ import { Container } from '@mui/material';
30
30
 
31
31
  /**
32
32
  * Main component of the form-rendering engine.
@@ -40,6 +40,7 @@ function BaseRenderer() {
40
40
  const updateExpressions = useQuestionnaireStore.use.updateExpressions();
41
41
  const readOnly = useQuestionnaireStore.use.readOnly();
42
42
 
43
+ const responseKey = useQuestionnaireResponseStore.use.key();
43
44
  const updatableResponse = useQuestionnaireResponseStore.use.updatableResponse();
44
45
  const validateQuestionnaire = useQuestionnaireResponseStore.use.validateQuestionnaire();
45
46
  const updateResponse = useQuestionnaireResponseStore.use.updateResponse();
@@ -81,7 +82,7 @@ function BaseRenderer() {
81
82
  if (everyItemIsPage) {
82
83
  return (
83
84
  <Fade in={true} timeout={500}>
84
- <Container maxWidth="xl">
85
+ <Container disableGutters maxWidth="xl" key={responseKey}>
85
86
  <FormTopLevelPage
86
87
  topLevelQItems={topLevelQItems}
87
88
  topLevelQRItems={topLevelQRItemsByIndex}
@@ -97,7 +98,7 @@ function BaseRenderer() {
97
98
 
98
99
  return (
99
100
  <Fade in={true} timeout={500}>
100
- <Container maxWidth="xl">
101
+ <Container disableGutters maxWidth="xl" key={responseKey}>
101
102
  {topLevelQItems.map((qItem, index) => {
102
103
  const qrItemOrItems = topLevelQRItemsByIndex[index];
103
104
 
@@ -16,16 +16,11 @@
16
16
  */
17
17
 
18
18
  import { useState } from 'react';
19
- import useInitialiseGroupTable from './useInitialiseGroupTable';
20
- import type { QuestionnaireResponseItem } from 'fhir/r4';
19
+ import type { GroupTableRowModel } from '../interfaces/groupTable.interface';
21
20
 
22
- function useGroupTableRows(linkId: string, qrItems: QuestionnaireResponseItem[]) {
23
- const initialisedGroupTableRows = useInitialiseGroupTable(linkId, qrItems);
24
-
25
- const [tableRows, setTableRows] = useState(initialisedGroupTableRows);
26
- const [selectedIds, setSelectedIds] = useState<string[]>(
27
- initialisedGroupTableRows.map((row) => row.id)
28
- );
21
+ function useGroupTableRows(valueFromProps: GroupTableRowModel[]) {
22
+ const [tableRows, setTableRows] = useState(valueFromProps);
23
+ const [selectedIds, setSelectedIds] = useState<string[]>(valueFromProps.map((row) => row.id));
29
24
 
30
25
  return { tableRows, selectedIds, setTableRows, setSelectedIds };
31
26
  }
@@ -18,21 +18,25 @@
18
18
  import type { QuestionnaireResponseItem } from 'fhir/r4';
19
19
  import type { GroupTableRowModel } from '../interfaces/groupTable.interface';
20
20
  import { generateExistingRepeatId, generateNewRepeatId } from '../utils/repeatId';
21
+ import { useMemo } from 'react';
21
22
 
22
- function useInitialiseGroupTable(
23
+ function useInitialiseGroupTableRows(
23
24
  linkId: string,
24
25
  qrItems: QuestionnaireResponseItem[]
25
26
  ): GroupTableRowModel[] {
26
- if (qrItems.length === 0) {
27
- return [{ id: generateNewRepeatId(linkId), qrItem: null }];
28
- }
27
+ return useMemo(() => {
28
+ if (qrItems.length === 0) {
29
+ return [{ id: generateNewRepeatId(linkId), qrItem: null, isSelected: true }];
30
+ }
29
31
 
30
- return qrItems.map((qrItem, index) => {
31
- return {
32
- id: generateExistingRepeatId(linkId, index),
33
- qrItem
34
- };
35
- });
32
+ return qrItems.map((qrItem, index) => {
33
+ return {
34
+ id: generateExistingRepeatId(linkId, index),
35
+ qrItem: qrItem,
36
+ isSelected: true
37
+ };
38
+ });
39
+ }, [linkId, qrItems]);
36
40
  }
37
41
 
38
- export default useInitialiseGroupTable;
42
+ export default useInitialiseGroupTableRows;