diff --git a/source/backend/api/Pims.Api.csproj b/source/backend/api/Pims.Api.csproj index ed67ee22b1..591b4b75ff 100644 --- a/source/backend/api/Pims.Api.csproj +++ b/source/backend/api/Pims.Api.csproj @@ -2,8 +2,8 @@ 0ef6255f-9ea0-49ec-8c65-c172304b4926 - 5.7.0-93.2 - 5.7.0-93.2 + 5.7.0-93.3 + 5.7.0-93.3 5.7.0.93 true 16BC0468-78F6-4C91-87DA-7403C919E646 diff --git a/source/frontend/package.json b/source/frontend/package.json index 5bf24ec96b..7da224291e 100644 --- a/source/frontend/package.json +++ b/source/frontend/package.json @@ -1,6 +1,6 @@ { "name": "frontend", - "version": "5.7.0-93.2", + "version": "5.7.0-93.3", "private": true, "dependencies": { "@bcgov/bc-sans": "1.0.1", diff --git a/source/frontend/src/features/documents/documentDetail/DocumentDetailForm.tsx b/source/frontend/src/features/documents/documentDetail/DocumentDetailForm.tsx index e384a17690..75ec9a04c0 100644 --- a/source/frontend/src/features/documents/documentDetail/DocumentDetailForm.tsx +++ b/source/frontend/src/features/documents/documentDetail/DocumentDetailForm.tsx @@ -1,4 +1,5 @@ import { Formik, FormikProps } from 'formik'; +import { ChangeEvent, useCallback, useEffect, useState } from 'react'; import { useMemo } from 'react'; import { Col, Row } from 'react-bootstrap'; import styled from 'styled-components'; @@ -17,6 +18,7 @@ import { ApiGen_CodeTypes_DocumentRelationType } from '@/models/api/generated/Ap import { ApiGen_Concepts_DocumentType } from '@/models/api/generated/ApiGen_Concepts_DocumentType'; import { ApiGen_Mayan_DocumentTypeMetadataType } from '@/models/api/generated/ApiGen_Mayan_DocumentTypeMetadataType'; import { ApiGen_Requests_DocumentUpdateRequest } from '@/models/api/generated/ApiGen_Requests_DocumentUpdateRequest'; +import { exists } from '@/utils/utils'; import { StyledH3, StyledScrollable } from '../commonStyles'; import { ComposedDocument, DocumentUpdateFormData } from '../ComposedDocument'; @@ -58,6 +60,34 @@ export const DocumentDetailForm: React.FunctionComponent< [props.documentTypes], ); + const [documentTypePurpose, setDocumentTypePurpose] = useState(null); + + const matchDocumentType = useCallback( + (documentTypeId: number) => { + const purpose = props.documentTypes.find(x => x.id === documentTypeId)?.documentTypePurpose; + + setDocumentTypePurpose(purpose); + }, + [props.documentTypes], + ); + + useEffect(() => { + const documentTypeId = Number(props.formikRef.current?.values?.documentTypeId); + matchDocumentType(documentTypeId); + }, [matchDocumentType, props.formikRef]); + + const onDocumentTypeChange = useCallback( + async (changeEvent: ChangeEvent) => { + if (changeEvent.target.value) { + const documentTypeId = Number(changeEvent.target.value); + matchDocumentType(documentTypeId); + } + + props.onDocumentTypeChange(changeEvent); + }, + [matchDocumentType, props], + ); + return ( @@ -105,13 +135,18 @@ export const DocumentDetailForm: React.FunctionComponent< } field={'documentTypeId'} options={documentTypeOptions} - onChange={props.onDocumentTypeChange} + onChange={onDocumentTypeChange} disabled={ documentTypeOptions.length === 1 || props.relationshipType === ApiGen_CodeTypes_DocumentRelationType.Templates } /> + {exists(documentTypePurpose) && ( + + {documentTypePurpose} + + )}