5
5
getLatestAmendmentByPermitGuid ,
6
6
getPermitByGuid ,
7
7
} from "@mds/common/redux/selectors/permitSelectors" ;
8
- import { IMine , IPermit , IPermitAmendment } from "@mds/common/interfaces" ;
8
+ import { IMine , IPermit , IPermitAmendment , IPermitAmendmentDocument } from "@mds/common/interfaces" ;
9
9
import ViewPermitOverview from "@/components/mine/Permit/ViewPermitOverview" ;
10
10
import PermitConditions from "@/components/mine/Permit/PermitConditions" ;
11
11
@@ -30,6 +30,8 @@ import {
30
30
import { userHasRole } from "@mds/common/redux/selectors/authenticationSelectors" ;
31
31
import { USER_ROLES } from "@mds/common/constants/environment" ;
32
32
import { PERMIT_CONDITION_STATUS_CODE } from "@mds/common/constants/enums" ;
33
+ import { closeModal , openModal } from "@mds/common/redux/actions/modalActions" ;
34
+ import PermitConditionsSelectDocumentModal from "@/components/mine/Permit/PermitConditionsSelectDocumentModal" ;
33
35
34
36
const tabs = [ "overview" , "conditions" ] ;
35
37
@@ -60,13 +62,14 @@ const ViewPermit: FC = () => {
60
62
const [ pollForStatus , setPollForStatus ] = useState ( false ) ;
61
63
62
64
const hasConditions = latestAmendment ?. conditions ?. length > 0 ;
63
- const isReviewComplete = latestAmendment ?. conditions ?. every ( ( con ) => con . permit_condition_status_code === PERMIT_CONDITION_STATUS_CODE . COM ) ;
64
-
65
+ const isReviewComplete = latestAmendment ?. conditions ?. every (
66
+ ( con ) => con . permit_condition_status_code === PERMIT_CONDITION_STATUS_CODE . COM
67
+ ) ;
65
68
66
69
const canStartExtraction =
67
- ( ( documents . length > 0 && ! permitExtraction ?. status ) ||
68
- [ PermitExtractionStatus . error , PermitExtractionStatus . not_started ] . includes (
69
- permitExtraction ?. status
70
+ ( ( documents . length > 0 && ! permitExtraction ?. task_status ) ||
71
+ [ PermitExtractionStatus . error , PermitExtractionStatus . not_started , PermitExtractionStatus . deleted ] . includes (
72
+ permitExtraction ?. task_status
70
73
) ) &&
71
74
! hasConditions ;
72
75
@@ -167,7 +170,35 @@ const ViewPermit: FC = () => {
167
170
168
171
const onConditionsTab = tab === tabs [ 1 ] ;
169
172
173
+ const handleSelectedDocumentExtraction = async ( document : IPermitAmendmentDocument ) => {
174
+ dispatch ( closeModal ( ) ) ;
175
+ await dispatch (
176
+ initiatePermitExtraction ( {
177
+ permit_amendment_id : latestAmendment ?. permit_amendment_id ,
178
+ permit_amendment_document_guid : document . permit_amendment_document_guid ,
179
+ } )
180
+ ) ;
181
+ } ;
182
+
183
+ const handleOpenFileSelectionModal = ( ) => {
184
+ dispatch (
185
+ openModal ( {
186
+ props : {
187
+ title : `Extract Permit Conditions` ,
188
+ documents : documents ,
189
+ onSubmit : handleSelectedDocumentExtraction ,
190
+ } ,
191
+ content : PermitConditionsSelectDocumentModal ,
192
+ } )
193
+ ) ;
194
+ } ;
195
+
170
196
const handleInitiateExtraction = async ( ) => {
197
+ if ( documents . length > 1 ) {
198
+ handleOpenFileSelectionModal ( ) ;
199
+ return ;
200
+ }
201
+
171
202
await dispatch (
172
203
initiatePermitExtraction ( {
173
204
permit_amendment_id : latestAmendment ?. permit_amendment_id ,
@@ -186,22 +217,23 @@ const ViewPermit: FC = () => {
186
217
187
218
const headerActions = [
188
219
onConditionsTab &&
189
- userCanEditConditions && {
190
- key : "extract" ,
191
- label : "Extract Permit Conditions" ,
192
- disabled : ! canStartExtraction ,
193
- clickFunction : handleInitiateExtraction ,
194
- } ,
220
+ userCanEditConditions && {
221
+ key : "extract" ,
222
+ label : "Extract Permit Conditions" ,
223
+ disabled : ! canStartExtraction ,
224
+ clickFunction : handleInitiateExtraction ,
225
+ } ,
195
226
onConditionsTab &&
196
- userCanEditConditions && {
197
- key : "delete_conditions" ,
198
- label : "Delete Permit Conditions" ,
199
- disabled : ! hasConditions ,
200
- clickFunction : handleDeleteConditions ,
201
- } ,
227
+ userCanEditConditions && {
228
+ key : "delete_conditions" ,
229
+ label : "Delete Permit Conditions" ,
230
+ disabled : ! hasConditions ,
231
+ clickFunction : handleDeleteConditions ,
232
+ } ,
202
233
] . filter ( Boolean ) ;
203
234
204
- const showHeaderActions = ! is_generated_in_core && enablePermitConditionsTab && headerActions . length > 0 ;
235
+ const showHeaderActions =
236
+ ! is_generated_in_core && enablePermitConditionsTab && headerActions . length > 0 ;
205
237
206
238
const headerActionComponent = showHeaderActions ? (
207
239
< ActionMenuButton actions = { headerActions } />
0 commit comments