Add onClose for modals

This commit is contained in:
2024-02-21 19:49:24 -05:00
parent 5f732bb5bf
commit d56ba24415
2 changed files with 6 additions and 2 deletions
+1
View File
@@ -50,6 +50,7 @@ const UI = {
* @param {string} [options.cancelText=Cancel] Text for the cancel button
* @param {callable} [options.onConfirm=NOOP] Callback to occur when clicking the submit button
* @param {callable} [options.onCancel=NOOP] Callback to occur when clicking the cancel button
* @param {callable} [options.onClose=NOOP] Callback to occur when exiting the modal
* @returns {string} The key used for this modal.
*/
showConfirmationModal(title, content, options = {}) {
+5 -2
View File
@@ -157,6 +157,7 @@ export default class Modals {
* @param {string} [options.cancelText=Cancel] - text for the cancel button
* @param {callable} [options.onConfirm=NOOP] - callback to occur when clicking the submit button
* @param {callable} [options.onCancel=NOOP] - callback to occur when clicking the cancel button
* @param {callable} [options.onClose=NOOP] - callback to occur when exiting the modal
* @param {string} [options.key] - key used to identify the modal. If not provided, one is generated and returned
* @returns {string} - the key used for this modal
*/
@@ -168,7 +169,7 @@ export default class Modals {
if (content instanceof FormattableString) content = content.toString();
const emptyFunction = () => {};
const {onConfirm = emptyFunction, onCancel = emptyFunction, confirmText = Strings.Modals.okay, cancelText = Strings.Modals.cancel, danger = false, key = undefined} = options;
const {onClose = emptyFunction, onConfirm = emptyFunction, onCancel = emptyFunction, confirmText = Strings.Modals.okay, cancelText = Strings.Modals.cancel, danger = false, key = undefined} = options;
if (!this.ModalActions || !this.ConfirmationModal || !this.Markdown) {
return this.default(title, content, [
@@ -181,6 +182,7 @@ export default class Modals {
content = content.map(c => typeof(c) === "string" ? React.createElement(Markdown, null, c) : c);
const modalKey = ModalActions.openModal(props => {
console.log(props);
return React.createElement(ErrorBoundary, {
onError: () => {
setTimeout(() => {
@@ -197,7 +199,8 @@ export default class Modals {
confirmText: confirmText,
cancelText: cancelText,
onConfirm: onConfirm,
onCancel: onCancel
onCancel: onCancel,
onCloseCallback: () => {if (props?.transitionState === 1) onClose?.()}
}, props), React.createElement(ErrorBoundary, {}, content)));
}, {modalKey: key});
return modalKey;