Skip to content

Commit 47669f4

Browse files
feat: add refresh notification in case of 422 race condition scenario
1 parent 8f4f140 commit 47669f4

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

src/modules/service-catalog/components/service-catalog-item/ServiceCatalogItem.tsx

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,31 @@ export function ServiceCatalogItem({
7171
if (response?.status === 422) {
7272
const errorData: ServiceRequestResponse = await response.json();
7373
const invalidFieldErrors = errorData.details.base;
74+
const missingErrorFields = invalidFieldErrors.filter(
75+
(errorField) => !requestFields.some(field => field.id === errorField.field_key)
76+
);
77+
78+
if (missingErrorFields.length > 0) {
79+
notify({
80+
type: "error",
81+
title: t(
82+
"service-catalog.item.service-request-error-title",
83+
"Service couldn't be submitted"
84+
),
85+
message: t(
86+
"service-catalog.item.service-request-refresh-message",
87+
"Refresh the page and try again in a few seconds."
88+
),
89+
link: {
90+
text: t(
91+
"service-catalog.item.service-request-refresh-link-text",
92+
"Refresh the page"
93+
),
94+
href: `${helpCenterPath}/services/${serviceCatalogItem.id}`,
95+
},
96+
});
97+
}
98+
7499
const updatedFields = requestFields.map((field) => {
75100
const errorField = invalidFieldErrors.find(
76101
(errorField) => errorField.field_key === field.id

0 commit comments

Comments
 (0)