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    
Size: Mime:
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;