Repository URL to install this package:
|
Version:
3.12.20 ▾
|
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;
};