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 / MoveItems / MoveItems.hooks.js
Size: Mime:
import { useCallback } from 'react';
import { useDispatch } from 'react-redux';
import { FolderMoveTo } from '@scaleflex/icons';
import { useModal } from '@filerobot/core/lib/hooks';
import { useTheme } from '@scaleflex/ui/theme/hooks';
import { PC } from '@filerobot/common';
import handlePromise from '@filerobot/utils/lib/handlePromise';
import FolderSelector from '../../common/FolderSelector';
import { useExplorerI18n, useExplorerInformer } from '../../../hooks';
import { moveItems } from '../../../thunks/items.thunks';
import { jsx as _jsx } from "react/jsx-runtime";
export var useMoveItemsModal = function useMoveItemsModal() {
  var dispatch = useDispatch();
  var toggleModal = useModal();
  var i18n = useExplorerI18n();
  var info = useExplorerInformer();
  var theme = useTheme();
  var triggerMoveItemsModal = useCallback(function (_ref) {
    var _ref$foldersUuids = _ref.foldersUuids,
      foldersUuids = _ref$foldersUuids === void 0 ? [] : _ref$foldersUuids,
      _ref$filesUuids = _ref.filesUuids,
      filesUuids = _ref$filesUuids === void 0 ? [] : _ref$filesUuids;
    var moveItemsHandler = function moveItemsHandler(_ref2) {
      var closeModal = _ref2.closeModal,
        setIsModalLoading = _ref2.setIsModalLoading,
        selectedFolder = _ref2.data;
      setIsModalLoading(true);
      handlePromise(dispatch(moveItems({
        foldersUuids: foldersUuids,
        filesUuids: filesUuids,
        toFolder: selectedFolder
      })), function () {
        setIsModalLoading(false);
        closeModal();
        info(i18n('explorerMovedSuccessfullyInfo'), 'success');
      }, function () {
        setIsModalLoading(false);
      });
    };
    toggleModal({
      icon: /*#__PURE__*/_jsx(FolderMoveTo, {
        size: 29,
        color: theme.palette[PC.AccentPrimary]
      }),
      title: i18n('explorerMoveItemsToTitle'),
      showTitleLabel: true,
      disableAutoClose: true,
      content: function content(_ref3) {
        var setPrimaryButtonDisabled = _ref3.setPrimaryButtonDisabled,
          data = _ref3.data,
          updateData = _ref3.updateData;
        return /*#__PURE__*/_jsx(FolderSelector, {
          foldersUuidsToMove: foldersUuids,
          setPrimaryButtonDisabled: setPrimaryButtonDisabled,
          selectedFolder: data,
          onSelect: updateData
        });
      },
      buttonPrimaryLabel: i18n('explorerMoveLabel'),
      onButtonPrimaryClick: moveItemsHandler,
      enterKeySubmits: true,
      modalStyle: {
        maxWidth: 400
      },
      modalFooterStyle: {
        flexDirection: 'row'
      },
      modalPrimaryButton: {
        width: 170
      },
      modalSecondaryButton: {
        width: 170
      },
      modalSecondaryButtonColor: 'basic',
      disablePrimaryButton: true
    });
  }, [i18n]);
  return triggerMoveItemsModal;
};