Skip to content

Commit 7a5378f

Browse files
committed
create #handleAcceptingSOWandCreatingPO so we can better handle errors, data, reloading and notices related to accepting an sow and creating a po
1 parent 8bb3aa0 commit 7a5378f

File tree

2 files changed

+41
-9
lines changed

2 files changed

+41
-9
lines changed

pages/requests/[uuid].js

Lines changed: 40 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import {
1414
Title,
1515
} from '@scientist-softserv/webstore-component-library'
1616
import {
17-
acceptSOW,
17+
acceptSOWandCreatePO,
1818
configureErrors,
1919
createMessageOrFile,
2020
requestActionsBg,
@@ -42,6 +42,8 @@ const Request = () => {
4242
const { messages, isLoadingMessages, isMessagesError, mutateMessages, messagesData } = useMessages(uuid, accessToken)
4343
const { files, isLoadingFiles, isFilesError, mutateFiles, filesData } = useFiles(uuid, accessToken)
4444

45+
const [show, setShow] = useState(false)
46+
const [message, setMessage] = useState(null)
4547
const [allPOs, setAllPOs] = useState([])
4648
const [isPOError, setIsPOError] = useState(false)
4749
const [isLoadingPOs, setIsLoadingPOs] = useState(true)
@@ -56,9 +58,9 @@ const Request = () => {
5658
setIsPOError(isPOError)
5759
})()
5860
}
59-
}, [allPOs, isPOError, request, uuid, session, accessToken])
61+
}, [request, isLoadingPOs, accessToken, uuid])
6062

61-
const isLoading = isLoadingRequest || isLoadingSOWs || isLoadingFiles || isLoadingMessages || isLoadingPOs
63+
const isLoading = isLoadingRequest || isLoadingSOWs || isLoadingFiles || isLoadingMessages
6264
const isError = isRequestError || isSOWError || isFilesError|| isMessagesError || isPOError
6365
const documents = (allSOWs) ? [...allSOWs, ...allPOs] : []
6466

@@ -92,6 +94,16 @@ const Request = () => {
9294
)
9395
}
9496

97+
const handleShow = (messageText) => {
98+
setMessage(messageText)
99+
setShow(true)
100+
}
101+
102+
const handleClose = () => {
103+
setMessage(null)
104+
setShow(false)
105+
}
106+
95107
const handleSendingMessagesOrFiles = async ({ message, files }) => {
96108
const { data, error } = await createMessageOrFile({
97109
id: request.id,
@@ -107,8 +119,32 @@ const Request = () => {
107119
}
108120
}
109121

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+
110137
return (
111138
<div className='container'>
139+
{(message && show) && (
140+
<Notice
141+
alert={{
142+
body: [message],
143+
variant: 'success',
144+
onClose: () => handleClose(),
145+
}}
146+
/>
147+
)}
112148
<StatusBar
113149
addClass='mt-4'
114150
apiRequestStatus={request.status.text}
@@ -139,11 +175,7 @@ const Request = () => {
139175
{documents.length ? documents.map((document, index) => (
140176
<Document
141177
addClass='mt-3'
142-
acceptSOW={() => acceptSOW(
143-
request,
144-
document,
145-
accessToken,
146-
)}
178+
acceptSOW={() => handleAcceptingSOWandCreatingPO(document)}
147179
document={document}
148180
key={`${request.id}-${index}`}
149181
request={request}

utils/api/requests.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,7 @@ export const createRequest = async ({ dynamicFormData, wareID, accessToken }) =>
266266
/* eslint-enable camelcase */
267267
}
268268

269-
export const acceptSOW = (request, sow, accessToken) => {
269+
export const acceptSOWandCreatePO = (request, sow, accessToken) => {
270270
let sharedRequestData = requestData({
271271
request: request,
272272
shipping: request.shippingAddress,

0 commit comments

Comments
 (0)