Skip to content

Commit ccd0142

Browse files
authored
[MDS-6385] NoD decision document upload conditions (#3459)
* fix for fee exemption error in updating and creating permits * adjusting snap file * adding test for EditPermitForm component * adjusting NoD decision doc upload conditions * ran yarn install locally * addressing pr comment
1 parent 6c3ad2e commit ccd0142

File tree

2 files changed

+17
-15
lines changed

2 files changed

+17
-15
lines changed

services/core-web/src/components/modalContent/NoticeOfDepartureModal.tsx

+17-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import React, { useEffect, useState } from "react";
22
import { Button, Col, Popconfirm, Row, Form } from "antd";
3-
import { connect } from "react-redux";
3+
import { connect, useSelector } from "react-redux";
44
import { bindActionCreators, compose } from "redux";
55
import {
66
EMPTY_FIELD,
@@ -18,12 +18,13 @@ import {
1818
updateNoticeOfDeparture,
1919
} from "@mds/common/redux/actionCreators/noticeOfDepartureActionCreator";
2020
import { getNoticeOfDeparture } from "@mds/common/redux/selectors/noticeOfDepartureSelectors";
21-
import { Field, FieldArray, change } from "@mds/common/components/forms/form";
21+
import { Field, FieldArray, change, getFormValues } from "@mds/common/components/forms/form";
2222
import {
2323
email,
2424
maxLength,
2525
phoneNumber,
2626
required,
27+
requiredList,
2728
} from "@mds/common/redux/utils/Validate";
2829
import { getUserAccessData } from "@mds/common/redux/selectors/authenticationSelectors";
2930
import CoreTable from "@mds/common/components/common/CoreTable";
@@ -51,7 +52,6 @@ interface RenderContactsProps {
5152

5253
export const renderContacts: React.FC<RenderContactsProps> = (props, disabled = false) => {
5354
const { fields } = props;
54-
5555
return (
5656
<div className="margin-large--bottom">
5757
{fields.length > 0 && (
@@ -132,6 +132,8 @@ const NoticeOfDepartureModal: React.FC<NoticeOfDepartureModalProps> = (props) =>
132132
const [uploadedFiles, setUploadedFiles] = useState([]);
133133
const [uploading, setUploading] = useState(false);
134134
const formName = FORM.NOTICE_OF_DEPARTURE_FORM;
135+
const formValues = useSelector(getFormValues(formName));
136+
const currentStatus = formValues?.nod_status
135137

136138
const { noticeOfDeparture, mine, change } = props;
137139
const { nod_guid } = noticeOfDeparture;
@@ -149,6 +151,15 @@ const NoticeOfDepartureModal: React.FC<NoticeOfDepartureModalProps> = (props) =>
149151
(doc) => doc.document_type === NOTICE_OF_DEPARTURE_DOCUMENT_TYPE.DECISION
150152
);
151153

154+
const isDecisionDocRequired = (status) => {
155+
const requiredDocStatuses = [
156+
NOTICE_OF_DEPARTURE_STATUS_VALUES.determined_non_substantial,
157+
NOTICE_OF_DEPARTURE_STATUS_VALUES.determined_substantial,
158+
];
159+
160+
return requiredDocStatuses.includes(status) && decision.length === 0 && documentArray.length == 0;
161+
}
162+
152163
const handleAddDocuments = (noticeOfDepartureGuid) => {
153164
documentArray.forEach((document) =>
154165
props.addDocumentToNoticeOfDeparture(
@@ -335,6 +346,8 @@ const NoticeOfDepartureModal: React.FC<NoticeOfDepartureModalProps> = (props) =>
335346
addFileStart={() => setUploading(true)}
336347
onAbort={() => setUploading(false)}
337348
onProcessFiles={() => setUploading(false)}
349+
validate={isDecisionDocRequired(currentStatus) ? [requiredList] : []}
350+
required={isDecisionDocRequired(currentStatus)}
338351
uploadUrl={NOTICE_OF_DEPARTURE_DOCUMENTS(mine.mine_guid)}
339352
acceptedFileTypesMap={{ ...DOCUMENT, ...EXCEL }}
340353
onFileLoad={(documentName, document_manager_guid) => {
@@ -383,7 +396,7 @@ const NoticeOfDepartureModal: React.FC<NoticeOfDepartureModalProps> = (props) =>
383396
) : (
384397
<>
385398
<RenderCancelButton />
386-
<RenderSubmitButton disabled={documentArray.length == 0 || uploading} buttonText="Update" disableOnClean={false} />
399+
<RenderSubmitButton disabled={isDecisionDocRequired(currentStatus) || uploading} buttonText="Update" disableOnClean={false} />
387400
</>
388401
)}
389402
</div>

yarn.lock

-11
Original file line numberDiff line numberDiff line change
@@ -4676,17 +4676,6 @@ __metadata:
46764676
languageName: node
46774677
linkType: hard
46784678

4679-
"axios@npm:1.7.2":
4680-
version: 1.7.2
4681-
resolution: "axios@npm:1.7.2"
4682-
dependencies:
4683-
follow-redirects: ^1.15.6
4684-
form-data: ^4.0.0
4685-
proxy-from-env: ^1.1.0
4686-
checksum: e457e2b0ab748504621f6fa6609074ac08c824bf0881592209dfa15098ece7e88495300e02cd22ba50b3468fd712fe687e629dcb03d6a3f6a51989727405aedf
4687-
languageName: node
4688-
linkType: hard
4689-
46904679
"axios@npm:1.8.2":
46914680
version: 1.8.2
46924681
resolution: "axios@npm:1.8.2"

0 commit comments

Comments
 (0)