Skip to content

Commit

Permalink
(fix) O3-3093: React form engine workspace should close after submitt…
Browse files Browse the repository at this point in the history
…ing a form (#1804)

* Patient forms not passing the closeWorkspaceWithSavedChanges function

* Passing closeWorkspaceWithSavedChanges to the forms

* Passing 'markFormAsDirty' in the form engine

* Bumped @openmrs/esm-form-engine-lib

* Fixed the import

* Reverted changes in form entry app
  • Loading branch information
vasharma05 authored Apr 24, 2024
1 parent 6b8f05b commit 9b40cba
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 84 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,15 @@ import FormError from './form-error.component';
import styles from './form-renderer.scss';
import { type DefaultWorkspaceProps } from '@openmrs/esm-patient-common-lib';

interface FormRendererProps extends DefaultWorkspaceProps {
interface FormRendererProps {
formUuid: string;
patientUuid: string;
visit?: Visit;
encounterUuid?: string;
additionalProps?: Record<string, any>;
closeWorkspace: DefaultWorkspaceProps['closeWorkspace'];
closeWorkspaceWithSavedChanges: DefaultWorkspaceProps['closeWorkspaceWithSavedChanges'];
promptBeforeClosing: DefaultWorkspaceProps['promptBeforeClosing'];
}

const FormRenderer: React.FC<FormRendererProps> = ({
Expand All @@ -22,6 +25,7 @@ const FormRenderer: React.FC<FormRendererProps> = ({
visit,
closeWorkspace,
closeWorkspaceWithSavedChanges,
promptBeforeClosing,
encounterUuid,
additionalProps,
}) => {
Expand Down Expand Up @@ -55,6 +59,7 @@ const FormRenderer: React.FC<FormRendererProps> = ({
handleClose={closeWorkspace}
onSubmit={closeWorkspaceWithSavedChanges}
mode={additionalProps?.mode}
markFormAsDirty={(isDirty: boolean) => promptBeforeClosing(() => isDirty)}
/>
)}
</>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@ interface FormEntryComponentProps extends DefaultWorkspaceProps {

const FormEntry: React.FC<FormEntryComponentProps> = ({
patientUuid,
closeWorkspace,
closeWorkspaceWithSavedChanges,
promptBeforeClosing,
mutateForm,
formInfo,
}) => {
Expand All @@ -36,9 +38,14 @@ const FormEntry: React.FC<FormEntryComponentProps> = ({
patient,
encounterUuid: encounterUuid ?? null,
closeWorkspace: () => {
typeof mutateForm === 'function' && mutateForm();
closeWorkspace();
},
closeWorkspaceWithSavedChanges: () => {
typeof mutateForm === 'function' && mutateForm();
closeWorkspaceWithSavedChanges();
},
promptBeforeClosing,
additionalProps,
}),
[
Expand All @@ -56,7 +63,9 @@ const FormEntry: React.FC<FormEntryComponentProps> = ({
patient,
isOnline,
mutateForm,
closeWorkspace,
closeWorkspaceWithSavedChanges,
promptBeforeClosing,
additionalProps,
],
);
Expand Down
99 changes: 16 additions & 83 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -4901,29 +4901,28 @@ __metadata:
linkType: hard

"@openmrs/openmrs-form-engine-lib@npm:next":
version: 1.0.0-pre.594
resolution: "@openmrs/openmrs-form-engine-lib@npm:1.0.0-pre.594"
version: 1.1.0-pre.662
resolution: "@openmrs/openmrs-form-engine-lib@npm:1.1.0-pre.662"
dependencies:
ace-builds: "npm:^1.4.12"
classnames: "npm:^2.5.1"
dayjs: "npm:1.x"
formik: "npm:^2.2.6"
jest-coverage-badges: "npm:^1.0.0"
lodash-es: "npm:^4.17.15"
react-anchor-link-smooth-scroll: "npm:^1.0.12"
react-error-boundary: "npm:^4.0.11"
react-markdown: "npm:^7.1.0"
react-scroll: "npm:^1.8.2"
react-test-renderer: "npm:^16.9.0"
react-waypoint: "npm:^10.3.0"
react-webcam: "npm:^7.1.1"
semver: "npm:^7.3.5"
yup: "npm:^0.29.1"
peerDependencies:
"@carbon/react": 1.x
"@openmrs/esm-framework": 5.x
dayjs: 1.x
react: 18.x
react-i18next: 11.x
rxjs: 6.x
checksum: 10/13d3d24cc5517f60f55dfc330f84ff1a7c501da5e981fab61ea2006e6e696e1ad236c73f965f8931237510fa5d7e857aed8ebff82b734dfd9a7b71fd048c4459
swr: 2.x
checksum: 10/80c6eaa80d681efd38d49c726b9d7f361aaae4f459a17e942285a2cc22310c8420a04accc93c2da195d92226ffc39b3151f87428b0988b7e501ea8c82573f583
languageName: node
linkType: hard

Expand Down Expand Up @@ -9301,6 +9300,13 @@ __metadata:
languageName: node
linkType: hard

"classnames@npm:^2.5.1":
version: 2.5.1
resolution: "classnames@npm:2.5.1"
checksum: 10/58eb394e8817021b153bb6e7d782cfb667e4ab390cb2e9dac2fc7c6b979d1cc2b2a733093955fc5c94aa79ef5c8c89f11ab77780894509be6afbb91dddd79d15
languageName: node
linkType: hard

"clean-css@npm:^5.2.2":
version: 5.3.0
resolution: "clean-css@npm:5.3.0"
Expand Down Expand Up @@ -10746,7 +10752,7 @@ __metadata:
languageName: node
linkType: hard

"dayjs@npm:^1.10.4, dayjs@npm:^1.10.7, dayjs@npm:^1.11.10":
"dayjs@npm:1.x, dayjs@npm:^1.10.4, dayjs@npm:^1.10.7, dayjs@npm:^1.11.10":
version: 1.11.10
resolution: "dayjs@npm:1.11.10"
checksum: 10/27e8f5bc01c0a76f36c656e62ab7f08c2e7b040b09e613cd4844abf03fb258e0350f0a83b02c887b84d771c1f11e092deda0beef8c6df2a1afbc3f6c1fade279
Expand Down Expand Up @@ -15000,17 +15006,6 @@ __metadata:
languageName: node
linkType: hard

"jest-coverage-badges@npm:^1.0.0":
version: 1.1.2
resolution: "jest-coverage-badges@npm:1.1.2"
dependencies:
mkdirp: "npm:0.5.1"
bin:
jest-coverage-badges: cli.js
checksum: 10/d3560a5e43902dca8cbfef747d42f367a40b12bc222edfb1bfafc546624583f9ae78c778736e387f21ff590836847e6c0b1d8d0e352ed3747155e9aca81c1c96
languageName: node
linkType: hard

"jest-diff@npm:^29.7.0":
version: 29.7.0
resolution: "jest-diff@npm:29.7.0"
Expand Down Expand Up @@ -16912,13 +16907,6 @@ __metadata:
languageName: node
linkType: hard

"minimist@npm:0.0.8":
version: 0.0.8
resolution: "minimist@npm:0.0.8"
checksum: 10/1e6279f747b3330fb918e47bd88093b26dadca91ea31bd50f40a805d9ff55fd9af16162248ffa303876b1cbb75fd5b701e773d46319c22025ec124e53bca0714
languageName: node
linkType: hard

"minimist@npm:^1.2.0, minimist@npm:^1.2.6":
version: 1.2.6
resolution: "minimist@npm:1.2.6"
Expand Down Expand Up @@ -17042,17 +17030,6 @@ __metadata:
languageName: node
linkType: hard

"mkdirp@npm:0.5.1":
version: 0.5.1
resolution: "mkdirp@npm:0.5.1"
dependencies:
minimist: "npm:0.0.8"
bin:
mkdirp: bin/cmd.js
checksum: 10/8651af2facdfa53f39e68fd93cf1653c11f7c1d49c6d1b4e53bcedc52e669cc64f1b5e95c49cfde7e99dbbcad26d3e61f4f2b4812f18c871c6455d9592f02806
languageName: node
linkType: hard

"mkdirp@npm:^0.5.1, mkdirp@npm:^0.5.5":
version: 0.5.6
resolution: "mkdirp@npm:0.5.6"
Expand Down Expand Up @@ -19183,13 +19160,6 @@ __metadata:
languageName: node
linkType: hard

"react-anchor-link-smooth-scroll@npm:^1.0.12":
version: 1.0.12
resolution: "react-anchor-link-smooth-scroll@npm:1.0.12"
checksum: 10/ca4f4a12eca0d657b5d1a96980b7b27fd94b8a896dc426d425364069f001d92c4c596936ba7b526aa26535623216e823792dee86470d5e798ef54110d5a0e0b8
languageName: node
linkType: hard

"react-avatar@npm:^5.0.3":
version: 5.0.3
resolution: "react-avatar@npm:5.0.3"
Expand Down Expand Up @@ -19301,7 +19271,7 @@ __metadata:
languageName: node
linkType: hard

"react-is@npm:^16.13.1, react-is@npm:^16.7.0, react-is@npm:^16.8.6":
"react-is@npm:^16.13.1, react-is@npm:^16.7.0":
version: 16.13.1
resolution: "react-is@npm:16.13.1"
checksum: 10/5aa564a1cde7d391ac980bedee21202fc90bdea3b399952117f54fb71a932af1e5902020144fb354b4690b2414a0c7aafe798eb617b76a3d441d956db7726fdf
Expand Down Expand Up @@ -19388,19 +19358,6 @@ __metadata:
languageName: node
linkType: hard

"react-scroll@npm:^1.8.2":
version: 1.8.9
resolution: "react-scroll@npm:1.8.9"
dependencies:
lodash.throttle: "npm:^4.1.1"
prop-types: "npm:^15.7.2"
peerDependencies:
react: ^15.5.4 || ^16.0.0 || ^17.0.0 || ^18.0.0
react-dom: ^15.5.4 || ^16.0.0 || ^17.0.0 || ^18.0.0
checksum: 10/ef37eb28c519ac90a30c741e2b006d50ce3a535029fc22996f3f436bf48b0907267d6f45593d533a55cc4e5d6ba63db28631fca854a760580fb822577a31d298
languageName: node
linkType: hard

"react-scrolllock@npm:^2.0.1":
version: 2.0.7
resolution: "react-scrolllock@npm:2.0.7"
Expand All @@ -19411,20 +19368,6 @@ __metadata:
languageName: node
linkType: hard

"react-test-renderer@npm:^16.9.0":
version: 16.14.0
resolution: "react-test-renderer@npm:16.14.0"
dependencies:
object-assign: "npm:^4.1.1"
prop-types: "npm:^15.6.2"
react-is: "npm:^16.8.6"
scheduler: "npm:^0.19.1"
peerDependencies:
react: ^16.14.0
checksum: 10/1a064a65c6073bb72376e8539e979836c52cd6629207163594078005e7bf68a4b35d9397a0ac04aa2a534a9f8f9eb2c2c3a5ff9d2dc8b67bafd6be7451dd1527
languageName: node
linkType: hard

"react-to-print@npm:^2.14.13":
version: 2.14.13
resolution: "react-to-print@npm:2.14.13"
Expand Down Expand Up @@ -20260,16 +20203,6 @@ __metadata:
languageName: node
linkType: hard

"scheduler@npm:^0.19.1":
version: 0.19.1
resolution: "scheduler@npm:0.19.1"
dependencies:
loose-envify: "npm:^1.1.0"
object-assign: "npm:^4.1.1"
checksum: 10/2bf42cd56994dd8a97bad0ecb6fbd720674f640c4a95957f9ab453dda28133d5f56755d842e6a0b203efef89a49c52354d151946f50e5c0b633d97d718285c8d
languageName: node
linkType: hard

"scheduler@npm:^0.23.0":
version: 0.23.0
resolution: "scheduler@npm:0.23.0"
Expand Down

0 comments on commit 9b40cba

Please sign in to comment.