Skip to content

Commit

Permalink
Fix [UI] no redirection after wizard close
Browse files Browse the repository at this point in the history
  • Loading branch information
illia-prokopchuk committed May 28, 2024
1 parent fe90132 commit 1e1713e
Show file tree
Hide file tree
Showing 3 changed files with 63 additions and 49 deletions.
49 changes: 27 additions & 22 deletions src/components/RegisterArtifactModal/RegisterArtifactModal.js
Original file line number Diff line number Diff line change
Expand Up @@ -129,35 +129,40 @@ const RegisterArtifactModal = ({
.then(response => {
if (response?.data) {
if (!isEmpty(response.data.artifacts)) {
openPopUp(ConfirmDialog, {
confirmButton: {
label: 'Overwrite',
variant: PRIMARY_BUTTON,
handler: handleRegisterArtifact
},
cancelButton: {
label: 'Cancel',
variant: TERTIARY_BUTTON
},
header: messagesByKind.overwriteConfirmTitle,
message: messagesByKind.getOverwriteConfirmMessage(response.data.artifacts[0].kind)
return new Promise((resolve, reject) => {
openPopUp(ConfirmDialog, {
confirmButton: {
label: 'Overwrite',
variant: PRIMARY_BUTTON,
handler: (...args) => {
handleRegisterArtifact(...args).then(resolve).catch(reject)
}
},
cancelButton: {
label: 'Cancel',
variant: TERTIARY_BUTTON,
handler: () => reject()
},
closePopUp: () => reject,
header: messagesByKind.overwriteConfirmTitle,
message: messagesByKind.getOverwriteConfirmMessage(response.data.artifacts[0].kind)
})
})

return null
} else {
return handleRegisterArtifact()
}
}
})
.catch(error => {
const customErrorMsg =
error.response.status === FORBIDDEN_ERROR_STATUS_CODE
? 'You are not permitted to create a new resource'
: `${title} failed to initiate`

showErrorNotification(dispatch, error, '', customErrorMsg, () => registerArtifact(values))

resolveModal()
if (error) {
const customErrorMsg =
error.response.status === FORBIDDEN_ERROR_STATUS_CODE
? 'You are not permitted to create a new resource'
: `${title} failed to initiate`

showErrorNotification(dispatch, error, '', customErrorMsg, () => registerArtifact(values))
resolveModal()
}
})
}

Expand Down
40 changes: 24 additions & 16 deletions src/elements/RegisterModelModal/RegisterModelModal.js
Original file line number Diff line number Diff line change
Expand Up @@ -119,29 +119,37 @@ function RegisterModelModal({ actions, isOpen, onResolve, params, refresh }) {
.then(response => {
if (response?.data) {
if (!isEmpty(response.data.artifacts)) {
openPopUp(ConfirmDialog, {
confirmButton: {
label: 'Overwrite',
variant: PRIMARY_BUTTON,
handler: handleRegisterModel
},
cancelButton: {
label: 'Cancel',
variant: TERTIARY_BUTTON
},
header: createModelMessages.overwriteConfirmTitle,
message: createModelMessages.getOverwriteConfirmMessage(response.data.artifacts[0].kind)
return new Promise((resolve, reject) => {
openPopUp(ConfirmDialog, {
confirmButton: {
label: 'Overwrite',
variant: PRIMARY_BUTTON,
handler: (...args) => {
handleRegisterModel(...args).then(resolve).catch(reject)
}
},
cancelButton: {
label: 'Cancel',
variant: TERTIARY_BUTTON,
handler: () => reject()
},
closePopUp: () => reject(),
header: createModelMessages.overwriteConfirmTitle,
message: createModelMessages.getOverwriteConfirmMessage(response.data.artifacts[0].kind)
})
})
} else {
return handleRegisterModel()
}
}
})
.catch(error => {
showErrorNotification(dispatch, error, '', 'Model failed to initiate', () =>
registerModel(values)
)
resolveModal()
if (error) {
showErrorNotification(dispatch, error, '', 'Model failed to initiate', () =>
registerModel(values)
)
resolveModal()
}
})
}

Expand Down
23 changes: 12 additions & 11 deletions src/hooks/useModalBlockHistory.hook.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,24 +24,25 @@ import { defaultCloseModalHandler } from '../utils/defaultCloseModalHandler'
import { areFormValuesChanged } from 'igz-controls/utils/form.util'

export const useModalBlockHistory = (closeModal, form) => {
let blocker = useBlocker(
() => {
const { initialValues, values } = form.getState()

const isFormDirty = areFormValuesChanged(initialValues, values)
const shouldBlock = useCallback(() => {
const { initialValues, values } = form.getState()

if (!isFormDirty) {
closeModal()
}
const isFormDirty = areFormValuesChanged(initialValues, values)

return isFormDirty
if (!isFormDirty) {
closeModal()
}
)

return isFormDirty
}, [closeModal, form])

let blocker = useBlocker(shouldBlock)

const resolveModal = useCallback(() => {
closeModal()
form.reset(form.initialValues)
blocker.proceed?.()
}, [blocker, closeModal])
}, [blocker, closeModal, form])

const handleRejectConfirmation = useCallback(() => {
blocker.reset?.()
Expand Down

0 comments on commit 1e1713e

Please sign in to comment.