Repository URL to install this package:
|
Version:
3.12.20 ▾
|
import { useDispatch, useSelector } from 'react-redux';
import { Remove } from '@scaleflex/icons';
import { useTheme } from '@scaleflex/ui/theme/hooks';
import { PC } from '@filerobot/common';
import { selectCurrentFiles, selectCurrentFilesIdsOrUuids } from '../../../slices/files.slice';
import Styled from './FileWindowHeader.styled';
import { useExplorer, useExplorerInformer } from '../../../hooks';
import { fileWindowUpdated, showAddFilesPanelUpdated } from '../../../slices/panels.slice';
import { useDeleteModal } from '../../Modals';
import { jsx as _jsx } from "react/jsx-runtime";
var BeforeUploadActionButtons = function BeforeUploadActionButtons(_ref) {
var originalFile = _ref.originalFile;
var _useExplorer = useExplorer(),
i18n = _useExplorer.i18n,
removeUploadFiles = _useExplorer.removeUploadFiles;
var dispatch = useDispatch();
var theme = useTheme();
var triggerDeleteModal = useDeleteModal();
var info = useExplorerInformer();
var currentFilesIdsOrUuids = useSelector(selectCurrentFilesIdsOrUuids);
var currentFiles = useSelector(selectCurrentFiles);
var fileIdOrUuid = originalFile.uuid || originalFile.id;
var filesLength = currentFilesIdsOrUuids.length;
var iconPrimaryColor = theme.palette[PC.IconsPrimary];
var updateFileWindow = function updateFileWindow(nextFileIdOrUuid) {
dispatch(fileWindowUpdated(nextFileIdOrUuid));
if (filesLength === 1) dispatch(showAddFilesPanelUpdated(true));
};
/**
* Navigates to the next item or closes the file window.
*
* @param {number} indexOffset - The offset from the current index. Defaults to 0.
*/
var navigateNextItemOrCloseFileWindow = function navigateNextItemOrCloseFileWindow() {
var indexOffset = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
var currentIndex = currentFilesIdsOrUuids.indexOf(fileIdOrUuid);
var nextIndex = (currentIndex + indexOffset + 1) % filesLength;
var nextFileIdOrUuid = currentFilesIdsOrUuids[nextIndex];
var nextFile = currentFiles[nextFileIdOrUuid];
updateFileWindow(nextFile.uuid || nextFile.id);
};
var handleDelete = function handleDelete() {
if (filesLength) {
navigateNextItemOrCloseFileWindow();
}
try {
removeUploadFiles([fileIdOrUuid], true);
info(i18n('deleteAssetSuccessToastMessage', {
name: originalFile.name
}), 'success');
} catch (_unused) {
info(i18n('deleteAssetFailToastMessage', {
name: originalFile.name
}), 'error');
}
};
var onClickDelete = function onClickDelete() {
triggerDeleteModal({
modalPrimaryButtonColor: 'error-primary',
title: i18n('mutualizedDeleteAssetLabel'),
content: i18n('deleteAssetConfirmationMessage', {
name: originalFile.name
}),
onConfirm: handleDelete
});
};
return /*#__PURE__*/_jsx(Styled.HeaderActionBtns, {
children: /*#__PURE__*/_jsx(Styled.HeaderActionBtn, {
onClick: onClickDelete,
size: "lg",
color: "basic",
children: /*#__PURE__*/_jsx(Remove, {
size: 18,
color: iconPrimaryColor
})
})
});
};
export default BeforeUploadActionButtons;