Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@filerobot/explorer / lib / components / Modals / DeleteModal / DeleteModal.hooks.js
Size: Mime:
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;
};