diff --git a/services/common/src/components/documents/DocumentCompression.tsx b/services/common/src/components/documents/DocumentCompression.tsx index a8015242d3..a5276f7eb1 100644 --- a/services/common/src/components/documents/DocumentCompression.tsx +++ b/services/common/src/components/documents/DocumentCompression.tsx @@ -1,5 +1,4 @@ import React, { FC, useState, useRef, useEffect } from "react"; -import { useDispatch } from "react-redux"; import { notification } from "antd"; import CompressionNotificationProgressBar from "@mds/common/components/documents/CompressionNotificationProgressBar"; import { MineDocument } from "@mds/common/models/documents/document"; @@ -9,6 +8,7 @@ import { } from "@mds/common/redux/actionCreators/documentActionCreator"; import DocumentCompressionWarningModal from "./DocumentCompressionWarningModal"; import DocumentCompressedDownloadModal from "./DocumentCompressedDownloadModal"; +import { useAppDispatch } from "@mds/common/redux/rootState"; interface DocumentCompressionProps { documentType?: string; @@ -27,7 +27,7 @@ const DocumentCompression: FC = ({ setCompressionInProgress, showDownloadWarning, }) => { - const dispatch = useDispatch(); + const dispatch = useAppDispatch(); const [isDownloadModalVisible, setDownloadModalVisible] = useState(false); const [compressionProgress, setCompressionProgress] = useState(0); const [isProgressBarVisible, setProgressBarVisible] = useState(false); @@ -97,7 +97,7 @@ const DocumentCompression: FC = ({ setCompressionInProgress?.(true); setProgressBarVisible(true); const poll = async () => { - const { data } = await dispatch(pollDocumentsCompressionProgress(taskId)); + const { data } = dispatch(pollDocumentsCompressionProgress(taskId)); if (data.progress) { setCompressionProgress(data.progress); } diff --git a/services/common/src/components/documents/ReplaceDocumentModal.tsx b/services/common/src/components/documents/ReplaceDocumentModal.tsx index 8ab7a678ac..26eeab727e 100644 --- a/services/common/src/components/documents/ReplaceDocumentModal.tsx +++ b/services/common/src/components/documents/ReplaceDocumentModal.tsx @@ -1,6 +1,5 @@ import React, { FC, useState } from "react"; import { Field } from "@mds/common/components/forms/form"; -import { useDispatch } from "react-redux"; import { Alert, Col, notification, Row, Typography } from "antd"; import { MineDocument } from "@mds/common/models/documents/document"; import { formatDate } from "@mds/common/redux/utils/helpers"; @@ -15,6 +14,7 @@ import { FORM } from "@mds/common/constants/forms"; import { closeModal } from "@mds/common/redux/actions/modalActions"; import RenderCancelButton from "../forms/RenderCancelButton"; import RenderSubmitButton from "../forms/RenderSubmitButton"; +import { useAppDispatch } from "@mds/common/redux/rootState"; interface ReplaceDocumentModalProps { document: MineDocument; @@ -23,7 +23,7 @@ interface ReplaceDocumentModalProps { } const ReplaceDocumentModal: FC = (props) => { - const dispatch = useDispatch(); + const dispatch = useAppDispatch(); const { document, alertMessage } = props; const [versionGuid, setVersionGuid] = useState(); const [disableReplace, setDisableReplace] = useState(true); diff --git a/services/common/src/components/documents/spatial/AddSpatialDocumentsModal.tsx b/services/common/src/components/documents/spatial/AddSpatialDocumentsModal.tsx index 79f205058b..52d5f18157 100644 --- a/services/common/src/components/documents/spatial/AddSpatialDocumentsModal.tsx +++ b/services/common/src/components/documents/spatial/AddSpatialDocumentsModal.tsx @@ -1,6 +1,6 @@ import React, { FC, useState } from "react"; import { Link } from "react-router-dom"; -import { useDispatch, useSelector } from "react-redux"; +import { useSelector } from "react-redux"; import FormWrapper from "../../forms/FormWrapper"; import { change, Field, getFormValues, reset, touch } from "@mds/common/components/forms/form"; import RenderFileUpload from "../../forms/RenderFileUpload"; @@ -14,6 +14,7 @@ import { createDocmanSpatialBundle } from "@mds/common/redux/slices/spatialDataS import { OTHER_SPATIAL, XML } from "@mds/common/constants/fileTypes"; import { SPATIAL_DATA_STANDARDS_URL } from "@mds/common/constants/strings"; import { MAX_DOCUMENT_NAME_LENGTHS } from "@mds/common/constants/enums"; +import { useAppDispatch } from "@mds/common/redux/rootState"; interface AddSpatialDocumentsModalProps { formName: string; @@ -28,7 +29,7 @@ const AddSpatialDocumentsModal: FC = ({ uploadUrl, transformFile, }) => { - const dispatch = useDispatch(); + const dispatch = useAppDispatch(); const initialValues = useSelector(getFormValues(formName)); const initialDocuments = initialValues[fieldName] ?? []; const modalFormName = `${formName}_${fieldName}`; diff --git a/services/common/src/components/forms/RenderFileUpload.tsx b/services/common/src/components/forms/RenderFileUpload.tsx index c9449321f0..a459bb3e05 100644 --- a/services/common/src/components/forms/RenderFileUpload.tsx +++ b/services/common/src/components/forms/RenderFileUpload.tsx @@ -1,5 +1,5 @@ import React, { FC, useContext, useEffect, useState } from "react"; -import { useDispatch, useSelector } from "react-redux"; +import { useSelector } from "react-redux"; import "filepond-polyfill"; import { FilePond, registerPlugin } from "react-filepond"; import { Form, notification, Popover, Switch } from "antd"; @@ -28,6 +28,7 @@ import { ENVIRONMENT } from "@mds/common/constants/environment"; import { APPLICATION_OCTET_STREAM } from "@mds/common/constants/fileTypes"; import { Feature } from "@mds/common/utils/featureFlag"; import { SystemFlagEnum } from "@mds/common/constants/enums"; +import { useAppDispatch } from "@mds/common/redux/rootState"; registerPlugin(FilePondPluginFileValidateSize, FilePondPluginFileValidateType); @@ -114,7 +115,7 @@ export const FileUpload: FC = ({ shouldAbortUpload, }) => { const system = useSelector(getSystemFlag); - const dispatch = useDispatch(); + const dispatch = useAppDispatch(); const { isFeatureEnabled } = useFeatureFlag(); const { isEditMode } = useContext(FormContext); diff --git a/services/common/src/components/help/HelpGuide.tsx b/services/common/src/components/help/HelpGuide.tsx index 39d78bd443..f1251b591e 100644 --- a/services/common/src/components/help/HelpGuide.tsx +++ b/services/common/src/components/help/HelpGuide.tsx @@ -32,13 +32,14 @@ import { cancelConfirmWrapper } from "../forms/RenderCancelButton"; import { SystemFlagEnum } from "@mds/common/constants/enums"; import { USER_ROLES } from "@mds/common/constants/environment"; import { FORM } from "@mds/common/constants/forms"; +import { useAppDispatch, useAppSelector } from "@mds/common/redux/rootState"; interface HelpGuideProps { helpKey: string; } export const HelpGuideContent: FC = ({ helpKey }) => { - const dispatch = useDispatch(); + const dispatch = useAppDispatch(); const system: SystemFlagEnum = useSelector(getSystemFlag); const params = useParams(); const { tab, activeTab } = params; @@ -49,11 +50,10 @@ export const HelpGuideContent: FC = ({ helpKey }) => { const [open, setOpen] = useState(false); const [isEditMode, setIsEditMode] = useState(false); const canEditHelp = useSelector((state) => userHasRole(state, USER_ROLES.role_edit_helpdesk)); - const helpGuide = useSelector(getHelpByKey(helpKey, pageTab)) ?? {}; + const helpGuide = useAppSelector(getHelpByKey(helpKey, pageTab)) ?? {help_guid: null, help_key: helpKey, content: ""}; const { help_guid, help_key } = helpGuide; const hasHelpGuide = Boolean(help_guid); const defaultGuide = help_key === EMPTY_HELP_KEY; - const { content = "" } = helpGuide ?? {}; const [isLoaded, setIsLoaded] = useState(hasHelpGuide); const unformattedTitle = pageTab ?? helpKey; const title = formatSnakeCaseToSentenceCase(unformattedTitle); @@ -142,7 +142,7 @@ export const HelpGuideContent: FC = ({ helpKey }) => { return {buttons}; }; const initialValues = - hasHelpGuide && !defaultGuide ? helpGuide : { help_key: helpKey, page_tab: pageTab }; + hasHelpGuide && !defaultGuide ? helpGuide : { help_key: helpKey, page_tab: pageTab, content: "" }; const mainContent = isEditMode ? ( = ({ helpKey }) => { pageTab={pageTab} /> ) : ( - parse(DOMPurify.sanitize(content)) + parse(DOMPurify.sanitize(helpGuide.content)) ); return ( diff --git a/services/common/src/components/projectSummary/Agent.tsx b/services/common/src/components/projectSummary/Agent.tsx index adc86118f3..06a6ab31ee 100644 --- a/services/common/src/components/projectSummary/Agent.tsx +++ b/services/common/src/components/projectSummary/Agent.tsx @@ -1,5 +1,5 @@ import React, { FC, useEffect, useState } from "react"; -import { useSelector, useDispatch } from "react-redux"; +import { useSelector } from "react-redux"; import { Field, change, getFormValues } from "@mds/common/components/forms/form"; import { Col, Row, Typography, Alert } from "antd"; import RenderField from "@mds/common/components/forms/RenderField"; @@ -29,9 +29,10 @@ import { IProjectSummaryForm } from "@mds/common/interfaces"; import { ProjectSummaryFormComponentProps } from "./ProjectSummaryForm"; import { FORM } from "@mds/common/constants/forms"; import { COLOR } from "@mds/common/constants/styles"; +import { useAppDispatch } from "@mds/common/redux/rootState"; export const Agent: FC = ({ fieldsDisabled }) => { - const dispatch = useDispatch(); + const dispatch = useAppDispatch(); const formValues = useSelector(getFormValues(FORM.ADD_EDIT_PROJECT_SUMMARY)) as IProjectSummaryForm; const { agent, is_agent = false } = formValues; const { party_type_code, address, credential_id } = agent ?? {}; diff --git a/services/common/src/components/projectSummary/AuthorizationsInvolved.tsx b/services/common/src/components/projectSummary/AuthorizationsInvolved.tsx index 33a2f6ab4f..ccb9c59def 100644 --- a/services/common/src/components/projectSummary/AuthorizationsInvolved.tsx +++ b/services/common/src/components/projectSummary/AuthorizationsInvolved.tsx @@ -55,9 +55,10 @@ import { ProjectSummaryFormComponentProps } from "./ProjectSummaryForm"; import { areAuthEnvFieldsDisabled, areDocumentFieldsDisabled, isDocumentDeletionEnabled } from "../projects/projectUtils"; import { removeDocumentFromProjectSummary } from "@mds/common/redux/actionCreators/projectActionCreator"; import { PROJECT_SUMMARY_DOCUMENT_TYPE_CODE_STATE, ENVIRONMENTAL_MANAGMENT_ACT, WASTE_DISCHARGE_NEW_AUTHORIZATIONS_URL, WASTE_DISCHARGE_AMENDMENT_AUTHORIZATIONS_URL } from "@mds/common/constants/strings"; +import { useAppDispatch } from "@mds/common/redux/rootState"; const RenderEMAPermitCommonSections = ({ code, isAmendment, index, isDisabled }) => { - const dispatch = useDispatch(); + const dispatch = useAppDispatch(); const purposeLabel = isAmendment ? "Additional Amendment Request Information" : "Purpose of Application"; diff --git a/services/common/src/components/projectSummary/DocumentUpload.tsx b/services/common/src/components/projectSummary/DocumentUpload.tsx index 2a262aca4d..ab78f4e84d 100644 --- a/services/common/src/components/projectSummary/DocumentUpload.tsx +++ b/services/common/src/components/projectSummary/DocumentUpload.tsx @@ -24,6 +24,7 @@ import { Feature } from "@mds/common/utils"; import { PROJECT_SUMMARY_DOCUMENT_TYPE_CODE } from "@mds/common/constants/strings"; import { FORM } from "@mds/common/constants/forms"; import { ENVIRONMENT } from "@mds/common/constants/environment"; +import { useAppDispatch } from "@mds/common/redux/rootState"; const RenderOldDocuments = ({ documents, @@ -71,7 +72,7 @@ interface DocumentUploadProps { } export const DocumentUpload: FC = ({ docFieldsDisabled, deleteEnabled }) => { - const dispatch = useDispatch(); + const dispatch = useAppDispatch(); const { spatial_documents = [], support_documents = [], diff --git a/services/common/src/components/projectSummary/ProjectLinks.tsx b/services/common/src/components/projectSummary/ProjectLinks.tsx index cc8ce0e604..53e340f204 100644 --- a/services/common/src/components/projectSummary/ProjectLinks.tsx +++ b/services/common/src/components/projectSummary/ProjectLinks.tsx @@ -18,6 +18,7 @@ import { FormContext } from "../forms/FormWrapper"; import { ProjectSummaryFormComponentProps } from "./ProjectSummaryForm"; import { FORM } from "@mds/common/constants/forms"; import { USER_ROLES } from "@mds/common/constants/environment"; +import { useAppDispatch } from "@mds/common/redux/rootState"; interface ProjectLinksProps extends ProjectSummaryFormComponentProps { viewProject: (record: ILinkedProject) => string; @@ -25,7 +26,7 @@ interface ProjectLinksProps extends ProjectSummaryFormComponentProps { } // outside of component to sneak past "hooks can't be rendered conditionally" const ProjectLinkInput = ({ unrelatedProjects = [], mineGuid, projectGuid }) => { - const dispatch = useDispatch(); + const dispatch = useAppDispatch(); const [currentSelection, setCurrentSelection] = useState([]); const formName = FORM.ADD_EDIT_PROJECT_SUMMARY; const fieldName = "linked-projects"; diff --git a/services/common/src/components/projects/ArchivedDocumentsSection.tsx b/services/common/src/components/projects/ArchivedDocumentsSection.tsx index aa09c2d955..0d7e8c3c0d 100644 --- a/services/common/src/components/projects/ArchivedDocumentsSection.tsx +++ b/services/common/src/components/projects/ArchivedDocumentsSection.tsx @@ -2,14 +2,14 @@ import React, { FC } from "react"; import { Typography } from "antd"; import DeleteOutlined from "@ant-design/icons/DeleteOutlined"; import { Feature } from "@mds/common/utils/featureFlag"; -import { MineDocument } from "@mds/common/models/documents/document"; import { useFeatureFlag } from "@mds/common/providers/featureFlags/useFeatureFlag"; import DocumentTable from "../documents/DocumentTable"; import { renderCategoryColumn } from "../common/CoreTableCommonColumns"; import { CATEGORY_CODE } from "@mds/common/constants/strings"; +import { IMineDocument } from "@mds/common/interfaces/mineDocument.interface"; interface ArchivedDocumentsSectionProps { - documents: MineDocument[]; + documents: IMineDocument[]; titleLevel?: 1 | 2 | 3 | 4 | 5; href?: string; showCategory?: boolean; diff --git a/services/common/src/components/reports/ReportDetailsForm.tsx b/services/common/src/components/reports/ReportDetailsForm.tsx index 43c48f6c7a..66ede2485b 100644 --- a/services/common/src/components/reports/ReportDetailsForm.tsx +++ b/services/common/src/components/reports/ReportDetailsForm.tsx @@ -134,8 +134,7 @@ const ReportDetailsForm: FC = ({ const coreEditReportPermission = USER_ROLES.role_edit_reports; const coreViewAllPermission = USER_ROLES.role_view; const dispatch = useDispatch(); - const formValues: IMineReportSubmission = - useSelector((state) => getFormValues(FORM.VIEW_EDIT_REPORT)(state)) ?? {}; + const formValues = useSelector((state) => getFormValues(FORM.VIEW_EDIT_REPORT)(state) ?? {}) as IMineReportSubmission; const [mineManager, setMineManager] = useState(); const [mineManagerGuid, setMineManagerGuid] = useState(""); diff --git a/services/common/src/components/reports/ReportGetStarted.tsx b/services/common/src/components/reports/ReportGetStarted.tsx index b24eef131f..f28e555d58 100644 --- a/services/common/src/components/reports/ReportGetStarted.tsx +++ b/services/common/src/components/reports/ReportGetStarted.tsx @@ -164,7 +164,7 @@ const ReportGetStarted: FC = ({ const dispatch = useDispatch(); const { reportType } = useParams<{ reportType?: string }>(); const system = useSelector(getSystemFlag); - const formValues = useSelector(getFormValues(FORM.VIEW_EDIT_REPORT)); + const formValues = useSelector(getFormValues(FORM.VIEW_EDIT_REPORT)) as IMineReportSubmission; const [commonReportDefinitionOptions, setCommonReportDefinitionOptions] = useState([]); const mineReportDefinitionOptions = useSelector(getFormattedMineReportDefinitionOptions); const selectedReportDefinition: IMineReportDefinition = useSelector( diff --git a/services/common/src/components/reports/ReportSteps.tsx b/services/common/src/components/reports/ReportSteps.tsx index ecea9471bf..8de2690905 100644 --- a/services/common/src/components/reports/ReportSteps.tsx +++ b/services/common/src/components/reports/ReportSteps.tsx @@ -1,7 +1,7 @@ import React, { useEffect, useState } from "react"; import { Button, Col, Row, Steps, Typography } from "antd"; import { Link, useHistory, useParams } from "react-router-dom"; -import { useDispatch, useSelector } from "react-redux"; +import { useSelector } from "react-redux"; import { reset } from "@mds/common/components/forms/form"; import { IMine, IMineReportSubmission } from "@mds/common/interfaces"; import ArrowLeftOutlined from "@ant-design/icons/ArrowLeftOutlined"; @@ -13,11 +13,12 @@ import { createReportSubmission } from "./reportSubmissionSlice"; import { getSystemFlag } from "@mds/common/redux/selectors/authenticationSelectors"; import { SystemFlagEnum } from "@mds/common/constants/enums"; import { FORM } from "@mds/common/constants/forms"; +import { useAppDispatch } from "@mds/common/redux/rootState"; const ReportSteps = () => { const system = useSelector(getSystemFlag); const history = useHistory(); - const dispatch = useDispatch(); + const dispatch = useAppDispatch(); const { mineGuid, reportType } = useParams<{ mineGuid: string; reportType: string }>(); const [currentStep, setCurrentStep] = useState(0); diff --git a/services/common/src/interfaces/helpGuide.interface.ts b/services/common/src/interfaces/helpGuide.interface.ts index 7a48f2c4ac..553d86918f 100644 --- a/services/common/src/interfaces/helpGuide.interface.ts +++ b/services/common/src/interfaces/helpGuide.interface.ts @@ -1,7 +1,7 @@ export interface HelpGuide { help_guid?: string; content: string; - system: string; + system?: string; page_tab?: string; help_key: string; } diff --git a/services/common/src/interfaces/mineDocumentVersion.interface.ts b/services/common/src/interfaces/mineDocumentVersion.interface.ts index 76d23662dd..82a8332d56 100644 --- a/services/common/src/interfaces/mineDocumentVersion.interface.ts +++ b/services/common/src/interfaces/mineDocumentVersion.interface.ts @@ -1,4 +1,5 @@ export interface IMineDocumentVersion { + status: string; mine_document_guid: string; mine_document_version_guid: string; mine_guid: string; diff --git a/services/common/src/interfaces/projects/createMajorMinesApplication.interface.ts b/services/common/src/interfaces/projects/createMajorMinesApplication.interface.ts index 8513604e6c..ac7c07b41e 100644 --- a/services/common/src/interfaces/projects/createMajorMinesApplication.interface.ts +++ b/services/common/src/interfaces/projects/createMajorMinesApplication.interface.ts @@ -1,9 +1,6 @@ -import { IMajorMinesApplicationDocument, IMajorMinesApplication } from "@mds/common/interfaces"; +import { IMajorMinesApplication } from "@mds/common/interfaces"; export interface ICreateMajorMinesApplication extends IMajorMinesApplication { mine_name: string; primary_contact: string; - primary_documents: Partial[]; - spatial_documents?: Partial[]; - supporting_documents?: Partial[]; } diff --git a/services/common/src/interfaces/tailingsStorageFacility/tailingsStorageFacility.interface.ts b/services/common/src/interfaces/tailingsStorageFacility/tailingsStorageFacility.interface.ts index 122af05d79..30a6aace3d 100644 --- a/services/common/src/interfaces/tailingsStorageFacility/tailingsStorageFacility.interface.ts +++ b/services/common/src/interfaces/tailingsStorageFacility/tailingsStorageFacility.interface.ts @@ -33,3 +33,9 @@ export interface IEngineerOfRecord extends IPartyAppt { mine_party_acknowledgement_status: string; status?: string; } + +export interface ITailingsStorageFacilityForm{ + engineer_of_record?: IEngineerOfRecord; + engineers_of_record?: IEngineerOfRecord[]; + mine_tailings_storage_facility_guid: string; +} diff --git a/services/common/src/models/documents/document.ts b/services/common/src/models/documents/document.ts index 1bf3496527..3b848d3483 100644 --- a/services/common/src/models/documents/document.ts +++ b/services/common/src/models/documents/document.ts @@ -1,5 +1,5 @@ import { USER_ROLES } from "@mds/common/constants/environment"; -import { IMineDocument } from "@mds/common/interfaces"; +import { IMineDocument, IMineDocumentVersion } from "@mds/common/interfaces"; import { isFeatureEnabled, Feature } from "@mds/common/utils"; export enum FileOperations { @@ -90,7 +90,7 @@ export class MineDocument implements IMineDocument { public number_prev_versions: number; - public versions: MineDocumentVersion[]; // all previous file versions, not including latest + public versions: IMineDocumentVersion[]; // all previous file versions, not including latest public allowed_actions: FileOperations[]; diff --git a/services/common/src/tests/mocks/dataMocks.tsx b/services/common/src/tests/mocks/dataMocks.tsx index 216d850ca4..10c4a8e0a9 100644 --- a/services/common/src/tests/mocks/dataMocks.tsx +++ b/services/common/src/tests/mocks/dataMocks.tsx @@ -1817,7 +1817,8 @@ export const PERMITS: IPermit[] = [ permit_condition_id: 1639, due_date_period_months: 12, initial_due_date: "2024-01-01", - }, + condition_category_code: "HSC" + } }, { permit_condition_id: 1646, diff --git a/services/core-web/common/components/tailings/EngineerOfRecord.tsx b/services/core-web/common/components/tailings/EngineerOfRecord.tsx index 3092990aaf..df8019e327 100644 --- a/services/core-web/common/components/tailings/EngineerOfRecord.tsx +++ b/services/core-web/common/components/tailings/EngineerOfRecord.tsx @@ -2,12 +2,17 @@ import { Alert, Button, Col, Empty, Popconfirm, Row, Typography } from "antd"; import { change, ChangeAction, Field, getFormValues } from "@mds/common/components/forms/form"; import React, { FC, useContext, useEffect, useState } from "react"; import { closeModal, openModal } from "@mds/common/redux/actions/modalActions"; -import { IDocument, IMine, IMinePartyAppt } from "@mds/common/interfaces"; +import { + IDocument, + IMine, + IMinePartyAppt, + ITailingsStorageFacilityForm, +} from "@mds/common/interfaces"; import { MINE_PARTY_APPOINTMENT_DOCUMENTS } from "@mds/common/constants/API"; import PlusCircleFilled from "@ant-design/icons/PlusCircleFilled"; import { bindActionCreators } from "redux"; -import { connect, useSelector } from "react-redux"; +import { ConnectedProps, connect, useSelector } from "react-redux"; import { downloadFileFromDocumentManager } from "@common/utils/actionlessNetworkCalls"; import { getPartyRelationships } from "@mds/common/redux/selectors/partiesSelectors"; import { @@ -63,7 +68,7 @@ const columns = (LinkButton): ColumnsType => [ }, ]; -export const EngineerOfRecord: FC = (props) => { +export const EngineerOfRecord: FC = (props) => { const { mineGuid, uploadedFiles, @@ -88,7 +93,9 @@ export const EngineerOfRecord: FC = (props) => { isCore, } = useContext(TailingsContext); - const formValues = useSelector((state) => getFormValues(tsfFormName)(state)); + const formValues = useSelector((state) => + getFormValues(tsfFormName)(state) + ) as ITailingsStorageFacilityForm; const { LinkButton, ContactDetails } = components; @@ -421,4 +428,7 @@ const mapStateToProps = (state) => ({ mines: getMines(state), }); -export default connect(mapStateToProps, mapDispatchToProps)(EngineerOfRecord); +const connector = connect(mapStateToProps, mapDispatchToProps); +type PropsFromRedux = ConnectedProps; + +export default connector(EngineerOfRecord); diff --git a/services/core-web/common/components/tailings/QualifiedPerson.tsx b/services/core-web/common/components/tailings/QualifiedPerson.tsx index 91ace384bd..3333674edf 100644 --- a/services/core-web/common/components/tailings/QualifiedPerson.tsx +++ b/services/core-web/common/components/tailings/QualifiedPerson.tsx @@ -1,12 +1,12 @@ import { Alert, Button, Col, Empty, Popconfirm, Row, Typography } from "antd"; -import { change, ChangeAction, Field, getFormValues } from "@mds/common/components/forms/form"; +import { change, Field, FormAction, getFormValues } from "@mds/common/components/forms/form"; import React, { FC, useContext, useEffect, useState } from "react"; import { closeModal, openModal } from "@mds/common/redux/actions/modalActions"; import { getPartyRelationships } from "@mds/common/redux/selectors/partiesSelectors"; import PlusCircleFilled from "@ant-design/icons/PlusCircleFilled"; import { bindActionCreators } from "redux"; -import { connect, useSelector } from "react-redux"; +import { ConnectedProps, connect, useSelector } from "react-redux"; import { dateInFuture, dateNotInFuture, @@ -16,16 +16,17 @@ import { import ContactDetails from "@common/components/ContactDetails"; import TailingsContext from "@common/components/tailings/TailingsContext"; import moment from "moment"; +import { ICreateTailingsStorageFacility } from "@mds/common/interfaces"; -interface QualifiedPersonProps { +interface QualifiedPersonProps extends PropsFromRedux { change: ( field: string, value: any, touch?: boolean, persistentSubmitErrors?: boolean - ) => ChangeAction; - openModal: (value: any) => void; - closeModal: () => void; + ) => FormAction; + openModal: (value: any) => { type: string; payload: unknown }; + closeModal: () => { type: string }; formValues: any; partyRelationships: any[]; mineGuid: string; @@ -38,7 +39,9 @@ interface QualifiedPersonProps { export const QualifiedPerson: FC = (props) => { const { isCore, mineGuid, partyRelationships, canEditTSF, isEditMode } = props; const { renderConfig, addContactModalConfig, tsfFormName } = useContext(TailingsContext); - const formValues = useSelector((state) => getFormValues(tsfFormName)(state)); + const formValues = useSelector((state) => + getFormValues(tsfFormName)(state) + ) as ICreateTailingsStorageFacility; const [currentQp, setCurrentQp] = useState(null); const canEditTSFAndEditMode = canEditTSF && isEditMode; @@ -260,4 +263,7 @@ const mapStateToProps = (state, ownProps) => ({ partyRelationships: getPartyRelationships(state), }); -export default connect(mapStateToProps, mapDispatchToProps)(QualifiedPerson); +const connector = connect(mapStateToProps, mapDispatchToProps); +type PropsFromRedux = ConnectedProps; + +export default connector(QualifiedPerson); diff --git a/services/minespace-web/common/components/tailings/EngineerOfRecord.tsx b/services/minespace-web/common/components/tailings/EngineerOfRecord.tsx index 3092990aaf..df8019e327 100644 --- a/services/minespace-web/common/components/tailings/EngineerOfRecord.tsx +++ b/services/minespace-web/common/components/tailings/EngineerOfRecord.tsx @@ -2,12 +2,17 @@ import { Alert, Button, Col, Empty, Popconfirm, Row, Typography } from "antd"; import { change, ChangeAction, Field, getFormValues } from "@mds/common/components/forms/form"; import React, { FC, useContext, useEffect, useState } from "react"; import { closeModal, openModal } from "@mds/common/redux/actions/modalActions"; -import { IDocument, IMine, IMinePartyAppt } from "@mds/common/interfaces"; +import { + IDocument, + IMine, + IMinePartyAppt, + ITailingsStorageFacilityForm, +} from "@mds/common/interfaces"; import { MINE_PARTY_APPOINTMENT_DOCUMENTS } from "@mds/common/constants/API"; import PlusCircleFilled from "@ant-design/icons/PlusCircleFilled"; import { bindActionCreators } from "redux"; -import { connect, useSelector } from "react-redux"; +import { ConnectedProps, connect, useSelector } from "react-redux"; import { downloadFileFromDocumentManager } from "@common/utils/actionlessNetworkCalls"; import { getPartyRelationships } from "@mds/common/redux/selectors/partiesSelectors"; import { @@ -63,7 +68,7 @@ const columns = (LinkButton): ColumnsType => [ }, ]; -export const EngineerOfRecord: FC = (props) => { +export const EngineerOfRecord: FC = (props) => { const { mineGuid, uploadedFiles, @@ -88,7 +93,9 @@ export const EngineerOfRecord: FC = (props) => { isCore, } = useContext(TailingsContext); - const formValues = useSelector((state) => getFormValues(tsfFormName)(state)); + const formValues = useSelector((state) => + getFormValues(tsfFormName)(state) + ) as ITailingsStorageFacilityForm; const { LinkButton, ContactDetails } = components; @@ -421,4 +428,7 @@ const mapStateToProps = (state) => ({ mines: getMines(state), }); -export default connect(mapStateToProps, mapDispatchToProps)(EngineerOfRecord); +const connector = connect(mapStateToProps, mapDispatchToProps); +type PropsFromRedux = ConnectedProps; + +export default connector(EngineerOfRecord); diff --git a/services/minespace-web/common/components/tailings/QualifiedPerson.tsx b/services/minespace-web/common/components/tailings/QualifiedPerson.tsx index 91ace384bd..3333674edf 100644 --- a/services/minespace-web/common/components/tailings/QualifiedPerson.tsx +++ b/services/minespace-web/common/components/tailings/QualifiedPerson.tsx @@ -1,12 +1,12 @@ import { Alert, Button, Col, Empty, Popconfirm, Row, Typography } from "antd"; -import { change, ChangeAction, Field, getFormValues } from "@mds/common/components/forms/form"; +import { change, Field, FormAction, getFormValues } from "@mds/common/components/forms/form"; import React, { FC, useContext, useEffect, useState } from "react"; import { closeModal, openModal } from "@mds/common/redux/actions/modalActions"; import { getPartyRelationships } from "@mds/common/redux/selectors/partiesSelectors"; import PlusCircleFilled from "@ant-design/icons/PlusCircleFilled"; import { bindActionCreators } from "redux"; -import { connect, useSelector } from "react-redux"; +import { ConnectedProps, connect, useSelector } from "react-redux"; import { dateInFuture, dateNotInFuture, @@ -16,16 +16,17 @@ import { import ContactDetails from "@common/components/ContactDetails"; import TailingsContext from "@common/components/tailings/TailingsContext"; import moment from "moment"; +import { ICreateTailingsStorageFacility } from "@mds/common/interfaces"; -interface QualifiedPersonProps { +interface QualifiedPersonProps extends PropsFromRedux { change: ( field: string, value: any, touch?: boolean, persistentSubmitErrors?: boolean - ) => ChangeAction; - openModal: (value: any) => void; - closeModal: () => void; + ) => FormAction; + openModal: (value: any) => { type: string; payload: unknown }; + closeModal: () => { type: string }; formValues: any; partyRelationships: any[]; mineGuid: string; @@ -38,7 +39,9 @@ interface QualifiedPersonProps { export const QualifiedPerson: FC = (props) => { const { isCore, mineGuid, partyRelationships, canEditTSF, isEditMode } = props; const { renderConfig, addContactModalConfig, tsfFormName } = useContext(TailingsContext); - const formValues = useSelector((state) => getFormValues(tsfFormName)(state)); + const formValues = useSelector((state) => + getFormValues(tsfFormName)(state) + ) as ICreateTailingsStorageFacility; const [currentQp, setCurrentQp] = useState(null); const canEditTSFAndEditMode = canEditTSF && isEditMode; @@ -260,4 +263,7 @@ const mapStateToProps = (state, ownProps) => ({ partyRelationships: getPartyRelationships(state), }); -export default connect(mapStateToProps, mapDispatchToProps)(QualifiedPerson); +const connector = connect(mapStateToProps, mapDispatchToProps); +type PropsFromRedux = ConnectedProps; + +export default connector(QualifiedPerson); diff --git a/services/minespace-web/src/components/Forms/projects/majorMineApplication/MajorMineApplicationForm.tsx b/services/minespace-web/src/components/Forms/projects/majorMineApplication/MajorMineApplicationForm.tsx index 4185730303..f5754494fd 100644 --- a/services/minespace-web/src/components/Forms/projects/majorMineApplication/MajorMineApplicationForm.tsx +++ b/services/minespace-web/src/components/Forms/projects/majorMineApplication/MajorMineApplicationForm.tsx @@ -20,7 +20,7 @@ import DocumentTable from "@mds/common/components/documents/DocumentTable"; import RenderField from "@mds/common/components/forms/RenderField"; import ArchivedDocumentsSection from "@mds/common/components/projects/ArchivedDocumentsSection"; import { required } from "@mds/common/redux/utils/Validate"; -import { IProject } from "@mds/common/interfaces/projects"; +import { IMajorMinesApplication, IProject } from "@mds/common/interfaces/projects"; import { FORM } from "@mds/common/constants/forms"; import { DOCUMENT, MODERN_EXCEL, SPATIAL } from "@mds/common/constants/fileTypes"; import { SystemFlagEnum } from "@mds/common/constants/enums"; @@ -38,7 +38,7 @@ const MajorMineApplicationForm: React.FC = ({ const dispatch = useDispatch(); const { primary_documents, spatial_documents, supporting_documents } = - useSelector(getFormValues(FORM.ADD_MINE_MAJOR_APPLICATION)) || {}; + (useSelector(getFormValues(FORM.ADD_MINE_MAJOR_APPLICATION)) as IMajorMinesApplication) || {}; const canModifyMmaDocs = !areDocumentFieldsDisabled( SystemFlagEnum.ms, project?.major_mine_application?.status_code diff --git a/services/minespace-web/src/components/common/LoginButton.js b/services/minespace-web/src/components/common/LoginButton.js index b230ecd19f..07e47e0acc 100644 --- a/services/minespace-web/src/components/common/LoginButton.js +++ b/services/minespace-web/src/components/common/LoginButton.js @@ -29,7 +29,7 @@ const LoginButton = (props) => { type="primary" size="large" className={props.className || "login"} - style={{ "margin-right": "10px" }} + style={{ marginRight: "10px" }} > Log in with BCeID diff --git a/services/minespace-web/src/components/dashboard/mine/MineDashboard.tsx b/services/minespace-web/src/components/dashboard/mine/MineDashboard.tsx index 73979745f8..6f040aa77c 100644 --- a/services/minespace-web/src/components/dashboard/mine/MineDashboard.tsx +++ b/services/minespace-web/src/components/dashboard/mine/MineDashboard.tsx @@ -1,5 +1,5 @@ import React, { FC, useEffect, useState } from "react"; -import { useSelector, useDispatch } from "react-redux"; +import { useSelector } from "react-redux"; import { useParams } from "react-router-dom"; import { getMineById } from "@mds/common/redux/selectors/mineSelectors"; import { fetchMineRecordById } from "@mds/common/redux/actionCreators/mineActionCreator"; @@ -11,9 +11,10 @@ import Loading from "@/components/common/Loading"; import { fetchMinistryContactsByRegion } from "@mds/common/redux/actionCreators/minespaceActionCreator"; import { fetchPartyRelationships } from "@mds/common/redux/actionCreators/partiesActionCreator"; import NotFoundNotice from "@/components/common/NotFoundNotice"; +import { useAppDispatch } from "@mds/common/redux/rootState"; const MineDashboard: FC = () => { - const dispatch = useDispatch(); + const dispatch = useAppDispatch(); const { id, activeTab } = useParams<{ id: string; activeTab: string }>(); const mine: IMine = useSelector((state) => getMineById(state, id)); const defaultIsLoadedValue: boolean = mine?.mine_guid === id; diff --git a/services/minespace-web/src/components/dashboard/mine/bonds/Bonds.tsx b/services/minespace-web/src/components/dashboard/mine/bonds/Bonds.tsx index accde717b5..37d0ff7c7f 100644 --- a/services/minespace-web/src/components/dashboard/mine/bonds/Bonds.tsx +++ b/services/minespace-web/src/components/dashboard/mine/bonds/Bonds.tsx @@ -1,14 +1,15 @@ import React, { FC, useContext, useEffect, useState } from "react"; -import { useDispatch, useSelector } from "react-redux"; +import { useSelector } from "react-redux"; import { Row, Col, Typography } from "antd"; import { fetchMineBonds } from "@mds/common/redux/actionCreators/securitiesActionCreator"; import { getBonds } from "@mds/common/redux/selectors/securitiesSelectors"; import BondsTable from "@/components/dashboard/mine/bonds/BondsTable"; import { SidebarContext } from "@mds/common/components/common/SidebarWrapper"; import { IMine } from "@mds/common/interfaces"; +import { useAppDispatch } from "@mds/common/redux/rootState"; export const Bonds: FC = () => { - const dispatch = useDispatch(); + const dispatch = useAppDispatch(); const [isLoaded, setIsLoaded] = useState(false); const { mine } = useContext<{ mine: IMine }>(SidebarContext); const bonds = useSelector(getBonds); diff --git a/services/minespace-web/src/components/dashboard/mine/inspections/Inspections.tsx b/services/minespace-web/src/components/dashboard/mine/inspections/Inspections.tsx index 7731c133fe..7210b7421c 100644 --- a/services/minespace-web/src/components/dashboard/mine/inspections/Inspections.tsx +++ b/services/minespace-web/src/components/dashboard/mine/inspections/Inspections.tsx @@ -1,5 +1,5 @@ import React, { FC, useContext, useEffect, useState } from "react"; -import { useSelector, useDispatch } from "react-redux"; +import { useSelector } from "react-redux"; import moment from "moment"; import { Row, Col, Typography } from "antd"; import { formatDate } from "@common/utils/helpers"; @@ -16,9 +16,10 @@ import { ExclamationCircleOutlined, FileTextOutlined, } from "@ant-design/icons"; +import { useAppDispatch } from "@mds/common/redux/rootState"; export const Inspections: FC = () => { - const dispatch = useDispatch(); + const dispatch = useAppDispatch(); const { mine } = useContext<{ mine: IMine }>(SidebarContext); const mineComplianceInfo = useSelector(getMineComplianceInfo); const [isLoaded, setIsLoaded] = useState(false); diff --git a/services/minespace-web/src/components/dashboard/mine/noticeOfDeparture/NoticeOfDeparture.tsx b/services/minespace-web/src/components/dashboard/mine/noticeOfDeparture/NoticeOfDeparture.tsx index da7c6fbad6..e3492c4e41 100644 --- a/services/minespace-web/src/components/dashboard/mine/noticeOfDeparture/NoticeOfDeparture.tsx +++ b/services/minespace-web/src/components/dashboard/mine/noticeOfDeparture/NoticeOfDeparture.tsx @@ -10,7 +10,7 @@ import { updateNoticeOfDeparture, } from "@mds/common/redux/actionCreators/noticeOfDepartureActionCreator"; import { getNoticesOfDeparture } from "@mds/common/redux/selectors/noticeOfDepartureSelectors"; -import { connect } from "react-redux"; +import { ConnectedProps, connect } from "react-redux"; import { bindActionCreators } from "redux"; import { useLocation } from "react-router-dom"; import { IMine, INodDocumentPayload, INoticeOfDeparture, INoDPermit } from "@mds/common/interfaces"; @@ -42,7 +42,7 @@ interface NoticeOfDepartureProps { fetchPermits: ActionCreator; } -export const NoticeOfDeparture: FC = (props) => { +export const NoticeOfDeparture: FC = (props) => { const { mine } = useContext<{ mine: IMine }>(SidebarContext); const { nods, permits } = props; const [isLoaded, setIsLoaded] = useState(false); @@ -227,4 +227,7 @@ const mapDispatchToProps = (dispatch) => dispatch ); -export default connect(mapStateToProps, mapDispatchToProps)(NoticeOfDeparture); +const connector = connect(mapStateToProps, mapDispatchToProps); +type PropsFromRedux = ConnectedProps; + +export default connector(NoticeOfDeparture); diff --git a/services/minespace-web/src/components/dashboard/mine/permits/ExplosivesPermit.tsx b/services/minespace-web/src/components/dashboard/mine/permits/ExplosivesPermit.tsx index 73bb5f8ae2..40185a8fb4 100644 --- a/services/minespace-web/src/components/dashboard/mine/permits/ExplosivesPermit.tsx +++ b/services/minespace-web/src/components/dashboard/mine/permits/ExplosivesPermit.tsx @@ -1,7 +1,12 @@ import ExplosivesPermitViewModal from "@mds/common/components/explosivespermits/ExplosivesPermitViewModal"; -import { IExplosivesPermit, IExplosivesPermitAmendment, IMine } from "@mds/common/interfaces"; +import { + IExplosivesPermit, + IExplosivesPermitAmendment, + IMine, + ItemMap, +} from "@mds/common/interfaces"; import { closeModal, openModal } from "@mds/common/redux/actions/modalActions"; -import { connect } from "react-redux"; +import { ConnectedProps, connect } from "react-redux"; import React, { FC, useEffect, useState } from "react"; import { getExplosivesPermits } from "@mds/common/redux/selectors/explosivesPermitSelectors"; import { Link, useParams } from "react-router-dom"; @@ -21,7 +26,7 @@ interface ExplosivesPermitProps { mines?: IMine[]; } -const ExplosivesPermit: FC = ({ +const ExplosivesPermit: FC = ({ handleOpenExplosivesPermitCloseModal, explosivesPermits, mines, @@ -103,4 +108,7 @@ const mapDispatchToProps = { fetchExplosivesPermits, }; -export default connect(mapStateToProps, mapDispatchToProps)(ExplosivesPermit); +const connector = connect(mapStateToProps, mapDispatchToProps); +type PropsFromRedux = ConnectedProps; + +export default connector(ExplosivesPermit); diff --git a/services/minespace-web/src/components/dashboard/mine/reports/ReportPage.tsx b/services/minespace-web/src/components/dashboard/mine/reports/ReportPage.tsx index 3cc5fb7152..901b4d8148 100644 --- a/services/minespace-web/src/components/dashboard/mine/reports/ReportPage.tsx +++ b/services/minespace-web/src/components/dashboard/mine/reports/ReportPage.tsx @@ -1,5 +1,5 @@ import React, { useEffect, useState } from "react"; -import { useDispatch, useSelector } from "react-redux"; +import { useSelector } from "react-redux"; import { Link, useLocation, useParams } from "react-router-dom"; import { getFormSubmitErrors, @@ -28,9 +28,10 @@ import { MINE_REPORT_STATUS_HASH } from "@mds/common/constants/strings"; import { MINE_REPORT_SUBMISSION_CODES } from "@mds/common/constants/enums"; import { IMineReportSubmission } from "@mds/common/interfaces/reports/mineReportSubmission.interface"; import { IMine } from "@mds/common/interfaces/mine.interface"; +import { useAppDispatch } from "@mds/common/redux/rootState"; const ReportPage = () => { - const dispatch = useDispatch(); + const dispatch = useAppDispatch(); const { state: routeState } = useLocation<{ isEditMode: boolean }>(); const defaultEditMode = routeState?.isEditMode ?? false; diff --git a/services/minespace-web/src/components/dashboard/mine/tailings/Tailings.tsx b/services/minespace-web/src/components/dashboard/mine/tailings/Tailings.tsx index ba84c0c478..18dcd15f37 100644 --- a/services/minespace-web/src/components/dashboard/mine/tailings/Tailings.tsx +++ b/services/minespace-web/src/components/dashboard/mine/tailings/Tailings.tsx @@ -1,5 +1,5 @@ import React, { FC, useContext } from "react"; -import { useDispatch, useSelector } from "react-redux"; +import { useSelector } from "react-redux"; import { Row, Col, Typography, Button } from "antd"; import { openModal, closeModal } from "@mds/common/redux/actions/modalActions"; import { @@ -20,12 +20,13 @@ import { getUserAccessData } from "@mds/common/redux/selectors/authenticationSel import { IMine } from "@mds/common/interfaces/mine.interface"; import { Feature } from "@mds/common/utils/featureFlag"; import { USER_ROLES } from "@mds/common/constants/environment"; +import { useAppDispatch } from "@mds/common/redux/rootState"; const { Paragraph, Title, Text } = Typography; export const Tailings: FC = () => { const { mine } = useContext<{ mine: IMine }>(SidebarContext); - const dispatch = useDispatch(); + const dispatch = useAppDispatch(); const history = useHistory(); const { isFeatureEnabled } = useFeatureFlag(); const tsfV2Enabled = isFeatureEnabled(Feature.TSF_V2); diff --git a/services/minespace-web/src/components/dashboard/mine/variances/Variances.tsx b/services/minespace-web/src/components/dashboard/mine/variances/Variances.tsx index d91ce045b7..460772d963 100644 --- a/services/minespace-web/src/components/dashboard/mine/variances/Variances.tsx +++ b/services/minespace-web/src/components/dashboard/mine/variances/Variances.tsx @@ -1,5 +1,5 @@ import React, { FC, useContext, useEffect, useState } from "react"; -import { useDispatch, useSelector } from "react-redux"; +import { useSelector } from "react-redux"; import { Row, Col, Typography, Button } from "antd"; import PlusCircleFilled from "@ant-design/icons/PlusCircleFilled"; import moment from "moment"; @@ -23,10 +23,11 @@ import VariancesTable from "@/components/dashboard/mine/variances/VariancesTable import AuthorizationWrapper from "@/components/common/wrappers/AuthorizationWrapper"; import { SidebarContext } from "@mds/common/components/common/SidebarWrapper"; import { IMine, ItemMap } from "@mds/common/interfaces"; +import { useAppDispatch } from "@mds/common/redux/rootState"; export const Variances: FC = () => { const { mine } = useContext<{ mine: IMine }>(SidebarContext); - const dispatch = useDispatch(); + const dispatch = useAppDispatch(); const [isLoaded, setIsLoaded] = useState(false); const variances = useSelector(getVariances); diff --git a/services/minespace-web/src/components/modalContent/noticeOfDeparture/AddNoticeOfDepartureModal.tsx b/services/minespace-web/src/components/modalContent/noticeOfDeparture/AddNoticeOfDepartureModal.tsx index ced6861c8d..f8308f39df 100644 --- a/services/minespace-web/src/components/modalContent/noticeOfDeparture/AddNoticeOfDepartureModal.tsx +++ b/services/minespace-web/src/components/modalContent/noticeOfDeparture/AddNoticeOfDepartureModal.tsx @@ -41,7 +41,6 @@ const AddNoticeOfDepartureModal: React.FC = (pro permits={permits} onSubmit={onSubmit} mineGuid={mineGuid} - closeModal={close} initialValues={initialValues} /> diff --git a/services/minespace-web/src/components/modalContent/noticeOfDeparture/EditNoticeOfDepartureModal.tsx b/services/minespace-web/src/components/modalContent/noticeOfDeparture/EditNoticeOfDepartureModal.tsx index aa75ab6493..1a7d80183f 100644 --- a/services/minespace-web/src/components/modalContent/noticeOfDeparture/EditNoticeOfDepartureModal.tsx +++ b/services/minespace-web/src/components/modalContent/noticeOfDeparture/EditNoticeOfDepartureModal.tsx @@ -25,7 +25,6 @@ const AddNoticeOfDepartureModal: React.FC = (pr initialValues={initialValues} mineGuid={mineGuid} onSubmit={onSubmit} - closeModal={close} noticeOfDeparture={noticeOfDeparture} /> diff --git a/services/minespace-web/src/components/pages/Project/ProjectSummaryPage.tsx b/services/minespace-web/src/components/pages/Project/ProjectSummaryPage.tsx index a7a3416b6a..c6257a2f5f 100644 --- a/services/minespace-web/src/components/pages/Project/ProjectSummaryPage.tsx +++ b/services/minespace-web/src/components/pages/Project/ProjectSummaryPage.tsx @@ -1,5 +1,5 @@ import React, { useEffect, useState } from "react"; -import { useDispatch, useSelector } from "react-redux"; +import { useSelector } from "react-redux"; import { Link, Prompt, useHistory, useLocation, useParams } from "react-router-dom"; import { reset } from "@mds/common/components/forms/form"; import { Col, Divider, Row, Typography } from "antd"; @@ -43,6 +43,7 @@ import { AMS_STATUS_CODES_SUCCESS, PROJECT_SUMMARY_WITH_AMS_SUBMISSION_SECTION, } from "@mds/common/constants/strings"; +import { useAppDispatch, useAppSelector } from "@mds/common/redux/rootState"; interface IParams { mineGuid?: string; @@ -52,14 +53,14 @@ interface IParams { } export const ProjectSummaryPage = () => { - const dispatch = useDispatch(); + const dispatch = useAppDispatch(); const history = useHistory(); const location = useLocation(); const systemFlag = useSelector(getSystemFlag); const isCore = systemFlag === SystemFlagEnum.core; const { mineGuid, projectGuid, projectSummaryGuid, tab } = useParams(); - const anyTouched = useSelector( + const anyTouched = useAppSelector( (state) => state.form[FORM.ADD_EDIT_PROJECT_SUMMARY]?.anyTouched || false ); @@ -145,7 +146,7 @@ export const ProjectSummaryPage = () => { const areAuthorizationsSuccessful = authorizations .filter((authorization) => Object.values(AMS_ENVIRONMENTAL_MANAGEMENT_ACT_TYPES).includes( - authorization.project_summary_authorization_type + authorization.project_summary_authorization_type as AMS_ENVIRONMENTAL_MANAGEMENT_ACT_TYPES ) ) .every((auth) => auth.ams_status_code === "200"); diff --git a/services/minespace-web/src/tests/components/Forms/projects/majorMineApplication/MajorMineApplicationForm.spec.tsx b/services/minespace-web/src/tests/components/Forms/projects/majorMineApplication/MajorMineApplicationForm.spec.tsx index cc42a40915..69ed62f6dd 100644 --- a/services/minespace-web/src/tests/components/Forms/projects/majorMineApplication/MajorMineApplicationForm.spec.tsx +++ b/services/minespace-web/src/tests/components/Forms/projects/majorMineApplication/MajorMineApplicationForm.spec.tsx @@ -8,15 +8,14 @@ import { ReduxWrapper as CommonReduxWrapper } from "@mds/common/tests/utils/Redu import { ReduxWrapper as MinespaceReduxWrapper } from "@/tests/utils/ReduxWrapper"; import { BrowserRouter } from "react-router-dom"; -import { useSelector } from "react-redux"; - const mockDispatch = jest.fn(); +const mockUseSelector = jest.fn(); jest.mock("react-redux", () => { const actualReactRedux = jest.requireActual("react-redux"); return { ...actualReactRedux, - useSelector: jest.fn(), + useSelector: () => mockUseSelector, useDispatch: () => mockDispatch, }; }); @@ -69,7 +68,7 @@ const initialState = { }; const props: any = {}; -useSelector.mockReturnValue([MOCK.MINEDOCUMENTS.records[0]]); +mockUseSelector.mockReturnValue([MOCK.MINEDOCUMENTS.records[0]]); beforeEach(() => { props.project = MOCK.PROJECTS.records[0];