Repository URL to install this package:
|
Version:
3.12.20 ▾
|
import { useDispatch, useSelector } from 'react-redux';
import { Button, Skeleton } from '@scaleflex/ui/core';
import { PLUGINS_IDS, IMAGE_EDITOR_MODES } from '@filerobot/utils/lib/constants';
import isM1EdgyMetaVersion from '@filerobot/utils/lib/metadata/isM1EdgyMetaVersion';
import { RegionalVariantFilters } from '@filerobot/common';
import { selectIsUserAuth } from '@filerobot/core/lib/slices/user.slice';
import { usePlugin } from '@filerobot/core/lib/hooks';
import isUploadableFile from '@filerobot/utils/lib/isUploadableFile';
import { fileWindowUpdated, imageEditorOpened, pdfFilePreviewOpened } from '../../../slices/panels.slice';
import { metadataRegionalFiltersSet, selectMetadataRegionalFilters, selectMetadataRegionalGroups, selectMetadataVersion } from '../../../slices/metadata.slice';
import isPdf from '@filerobot/utils/lib/isPdf';
import BeforeUploadActionButtons from './BeforeUploadActionBtns';
import AfterUploadActionBtns from './AfterUploadActionBtns';
import Styled from './FileWindowHeader.styled';
import { selectIsShareboxView } from '../../../slices/views.slice';
import { selectionsCleared } from '../../../slices/selections.slice';
import { labelsSelectionToggled } from '../../../slices/labels.slice';
import { collectionsDeselected } from '../../../slices/collections.slice';
import { useExplorer } from '../../../hooks';
import { jsx as _jsx } from "react/jsx-runtime";
import { jsxs as _jsxs } from "react/jsx-runtime";
var FileWindowHeader = function FileWindowHeader(_ref) {
var _ref$originalFile = _ref.originalFile,
originalFile = _ref$originalFile === void 0 ? {} : _ref$originalFile,
_ref$previewedFile = _ref.previewedFile,
previewedFile = _ref$previewedFile === void 0 ? {} : _ref$previewedFile,
isPdfFile = _ref.isPdfFile,
isImageFile = _ref.isImageFile,
i18n = _ref.i18n,
alertUnsavedChangesFirst = _ref.alertUnsavedChangesFirst;
var dispatch = useDispatch();
var _useExplorer = useExplorer(),
viewerMode = _useExplorer.opts.viewerMode;
var isM1EdgyMeta = useSelector(function (state) {
return isM1EdgyMetaVersion(selectMetadataVersion(state));
});
var metaRegionalFilters = useSelector(selectMetadataRegionalFilters);
var metaRegionalGroups = useSelector(selectMetadataRegionalGroups);
var isUserAuth = useSelector(selectIsUserAuth);
var isShareboxView = useSelector(selectIsShareboxView);
var isPreUpload = isUploadableFile(originalFile);
var isPdftronPreviewSupported = Boolean(usePlugin(PLUGINS_IDS.PDFTRON));
var name = previewedFile.name;
var isFileLoading = originalFile.loading;
var hideEditPdf = true; // TODO: Enable after adding pdftron
var togglePdfEdit = function togglePdfEdit(originalFile) {
if (originalFile && isPdf(originalFile) && isPdftronPreviewSupported) {
alertUnsavedChangesFirst(function () {
dispatch(pdfFilePreviewOpened(originalFile.uuid || originalFile.id));
});
} else {
dispatch(pdfFilePreviewOpened(null));
}
};
var openImgEditor = function openImgEditor() {
alertUnsavedChangesFirst(function () {
dispatch(imageEditorOpened({
file: originalFile,
mode: IMAGE_EDITOR_MODES.DEFAULT,
showBackButton: true,
hideSavingOptions: true
}));
});
};
var handleClearSelection = function handleClearSelection() {
dispatch(selectionsCleared());
dispatch(labelsSelectionToggled({
uuids: []
}));
dispatch(collectionsDeselected());
};
var closeCard = function closeCard() {
alertUnsavedChangesFirst(function () {
handleClearSelection();
dispatch(fileWindowUpdated(null));
});
};
var setMetaRegionalFilters = function setMetaRegionalFilters(metaRegionalFilters) {
dispatch(metadataRegionalFiltersSet(metaRegionalFilters));
};
var renderActionButtonsContent = function renderActionButtonsContent() {
if (viewerMode) return null;
if (isPreUpload) {
return /*#__PURE__*/_jsx(BeforeUploadActionButtons, {
originalFile: originalFile
});
}
return /*#__PURE__*/_jsx(AfterUploadActionBtns, {
originalFile: originalFile,
previewedFile: previewedFile
});
};
var renderHideableContent = function renderHideableContent() {
var showPdfButton = isPdfFile && !hideEditPdf;
var showEditImageButton = isImageFile && isUserAuth && !isPreUpload;
if (showPdfButton) {
return /*#__PURE__*/_jsx(Styled.SizeHideableContent, {
defaultDisplay: true,
children: /*#__PURE__*/_jsx(Button, {
disabled: !isPdftronPreviewSupported,
onClick: togglePdfEdit,
children: i18n('itemsCardEditPdf')
})
});
}
if (showEditImageButton) {
return /*#__PURE__*/_jsx(Styled.SizeHideableContent, {
defaultDisplay: true,
children: /*#__PURE__*/_jsx(Styled.EditButton, {
color: "secondary",
size: "md",
onClick: openImgEditor,
children: i18n('mutualizedEditImageLabel')
})
});
}
return null;
};
if (isFileLoading) {
return /*#__PURE__*/_jsxs(Styled.Header, {
children: [/*#__PURE__*/_jsx(Styled.HeaderTitleAndLocate, {
children: /*#__PURE__*/_jsx(Skeleton, {
width: 140,
height: 24
})
}), /*#__PURE__*/_jsxs(Styled.HeaderRightSectionWrapper, {
children: [/*#__PURE__*/_jsx(Skeleton, {
width: 250,
height: 24
}), /*#__PURE__*/_jsx(Styled.HeaderCloseBtn, {
onClick: closeCard
})]
})]
});
}
return /*#__PURE__*/_jsxs(Styled.Header, {
children: [/*#__PURE__*/_jsx(Styled.HeaderTitleAndLocate, {
children: /*#__PURE__*/_jsx(Styled.HeaderTitle, {
title: name,
children: name
})
}), /*#__PURE__*/_jsxs(Styled.HeaderRightSectionWrapper, {
children: [/*#__PURE__*/_jsxs(Styled.HeaderRightSection, {
$hidden: isShareboxView,
children: [isM1EdgyMeta && /*#__PURE__*/_jsx(Styled.RegionalVariantsWrapper, {
children: /*#__PURE__*/_jsx(RegionalVariantFilters, {
iconSize: 16,
groups: metaRegionalGroups,
filters: metaRegionalFilters,
onChangeFilters: setMetaRegionalFilters,
i18n: i18n
})
}), renderActionButtonsContent(), renderHideableContent()]
}), /*#__PURE__*/_jsx(Styled.HeaderCloseBtn, {
onClick: closeCard
})]
})]
});
};
export default FileWindowHeader;