@@ -14,7 +14,7 @@ import {
14
14
Title ,
15
15
} from '@scientist-softserv/webstore-component-library'
16
16
import {
17
- acceptSOW ,
17
+ acceptSOWandCreatePO ,
18
18
configureErrors ,
19
19
createMessageOrFile ,
20
20
requestActionsBg ,
@@ -42,6 +42,8 @@ const Request = () => {
42
42
const { messages, isLoadingMessages, isMessagesError, mutateMessages, messagesData } = useMessages ( uuid , accessToken )
43
43
const { files, isLoadingFiles, isFilesError, mutateFiles, filesData } = useFiles ( uuid , accessToken )
44
44
45
+ const [ show , setShow ] = useState ( false )
46
+ const [ message , setMessage ] = useState ( null )
45
47
const [ allPOs , setAllPOs ] = useState ( [ ] )
46
48
const [ isPOError , setIsPOError ] = useState ( false )
47
49
const [ isLoadingPOs , setIsLoadingPOs ] = useState ( true )
@@ -56,9 +58,9 @@ const Request = () => {
56
58
setIsPOError ( isPOError )
57
59
} ) ( )
58
60
}
59
- } , [ allPOs , isPOError , request , uuid , session , accessToken ] )
61
+ } , [ request , isLoadingPOs , accessToken , uuid ] )
60
62
61
- const isLoading = isLoadingRequest || isLoadingSOWs || isLoadingFiles || isLoadingMessages || isLoadingPOs
63
+ const isLoading = isLoadingRequest || isLoadingSOWs || isLoadingFiles || isLoadingMessages
62
64
const isError = isRequestError || isSOWError || isFilesError || isMessagesError || isPOError
63
65
const documents = ( allSOWs ) ? [ ...allSOWs , ...allPOs ] : [ ]
64
66
@@ -92,6 +94,16 @@ const Request = () => {
92
94
)
93
95
}
94
96
97
+ const handleShow = ( messageText ) => {
98
+ setMessage ( messageText )
99
+ setShow ( true )
100
+ }
101
+
102
+ const handleClose = ( ) => {
103
+ setMessage ( null )
104
+ setShow ( false )
105
+ }
106
+
95
107
const handleSendingMessagesOrFiles = async ( { message, files } ) => {
96
108
const { data, error } = await createMessageOrFile ( {
97
109
id : request . id ,
@@ -107,8 +119,32 @@ const Request = () => {
107
119
}
108
120
}
109
121
122
+ const handleAcceptingSOWandCreatingPO = async ( document ) => {
123
+ const { data, error } = await acceptSOWandCreatePO (
124
+ request ,
125
+ document ,
126
+ accessToken ,
127
+ )
128
+
129
+ if ( error || data . code ) {
130
+ setIsPOError ( error || data . code )
131
+ } else if ( data . message ) {
132
+ setIsLoadingPOs ( true )
133
+ handleShow ( data . message )
134
+ }
135
+ }
136
+
110
137
return (
111
138
< div className = 'container' >
139
+ { ( message && show ) && (
140
+ < Notice
141
+ alert = { {
142
+ body : [ message ] ,
143
+ variant : 'success' ,
144
+ onClose : ( ) => handleClose ( ) ,
145
+ } }
146
+ />
147
+ ) }
112
148
< StatusBar
113
149
addClass = 'mt-4'
114
150
apiRequestStatus = { request . status . text }
@@ -139,11 +175,7 @@ const Request = () => {
139
175
{ documents . length ? documents . map ( ( document , index ) => (
140
176
< Document
141
177
addClass = 'mt-3'
142
- acceptSOW = { ( ) => acceptSOW (
143
- request ,
144
- document ,
145
- accessToken ,
146
- ) }
178
+ acceptSOW = { ( ) => handleAcceptingSOWandCreatingPO ( document ) }
147
179
document = { document }
148
180
key = { `${ request . id } -${ index } ` }
149
181
request = { request }
0 commit comments