Repository URL to install this package:
|
Version:
3.12.20 ▾
|
import { useCallback } from 'react';
import { useModal } from '@filerobot/core/lib/hooks';
import { Remove } from '@scaleflex/icons';
import { PC } from '@filerobot/common';
import { useTheme } from '@scaleflex/ui/theme/hooks';
import { useExplorerI18n } from '../../../hooks';
import { jsx as _jsx } from "react/jsx-runtime";
export var useDeleteModal = function useDeleteModal() {
var isGlobalHigherLvlModal = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
var i18n = useExplorerI18n();
var toggleModal = useModal({
isGlobalHigherLvlModal: isGlobalHigherLvlModal
});
var theme = useTheme();
var triggerDeleteModal = useCallback(function (_ref) {
var title = _ref.title,
content = _ref.content,
onConfirm = _ref.onConfirm,
_ref$modalPrimaryButt = _ref.modalPrimaryButtonColor,
modalPrimaryButtonColor = _ref$modalPrimaryButt === void 0 ? 'warning-primary' : _ref$modalPrimaryButt;
var handleConfirm = function handleConfirm(props) {
var setIsModalLoading = props.setIsModalLoading,
setPrimaryButtonDisabled = props.setPrimaryButtonDisabled,
closeModal = props.closeModal;
var confirmResponse = onConfirm(props);
if (confirmResponse instanceof Promise) {
setIsModalLoading(true);
setPrimaryButtonDisabled(true);
confirmResponse["finally"](function () {
setPrimaryButtonDisabled(false);
setIsModalLoading(false);
closeModal();
});
return;
}
closeModal();
};
toggleModal({
icon: /*#__PURE__*/_jsx(Remove, {
color: theme.palette[PC.Error],
size: 29
}),
showTitleLabel: true,
title: title,
content: content,
buttonPrimaryLabel: i18n('mutualizedConfirmButtonLabel'),
onButtonPrimaryClick: handleConfirm,
disableAutoClose: true,
modalStyle: {
maxWidth: 400
},
modalBodyStyle: {
textAlign: 'center'
},
modalFooterStyle: {
flexDirection: 'row'
},
modalSecondaryButton: {
width: 170
},
modalSecondaryButtonColor: 'basic',
modalPrimaryButtonColor: modalPrimaryButtonColor,
modalPrimaryButton: {
width: 170
}
});
}, [theme, i18n]);
return triggerDeleteModal;
};