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 / ShareFolder / ShareFolderFooter.js
Size: Mime:
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
import { useState } from 'react';
import { useDispatch } from 'react-redux';
import { Share } from '@scaleflex/icons';
import { useCore, useModal } from '@filerobot/core/lib/hooks';
import handlePromise from '@filerobot/utils/lib/handlePromise';
import Styled from './ShareFolder.styled';
import { adaptDataBeforeSave, errorHandler } from './ShareFolder.utils';
import { useExplorer } from '../../../hooks';
import { createSharedAssets } from '../../SharePanel/SharePanel.thunks';
import { jsx as _jsx } from "react/jsx-runtime";
import { jsxs as _jsxs } from "react/jsx-runtime";
var ShareFolderModalFooter = function ShareFolderModalFooter(_ref) {
  var shareFolderState = _ref.shareFolderState,
    setErrors = _ref.setErrors,
    afterShare = _ref.afterShare,
    foldersUuids = _ref.foldersUuids;
  var dispatch = useDispatch();
  var toggleModal = useModal();
  var _useCore = useCore(),
    coreOpts = _useCore.opts;
  var _useExplorer = useExplorer(),
    info = _useExplorer.info,
    i18n = _useExplorer.i18n,
    _useExplorer$opts$con = _useExplorer.opts.config,
    config = _useExplorer$opts$con === void 0 ? {} : _useExplorer$opts$con;
  var companyName = config.companyName;
  var container = coreOpts.container,
    shareApiEndpoint = coreOpts.shareApiEndpoint;
  var _useState = useState(false),
    _useState2 = _slicedToArray(_useState, 2),
    loading = _useState2[0],
    setLoading = _useState2[1];
  var handleCancel = function handleCancel() {
    toggleModal(null);
  };
  var handleSubmitData = function handleSubmitData(data) {
    handlePromise(dispatch(createSharedAssets({
      shareData: data,
      companyName: companyName,
      shareApiEndpoint: shareApiEndpoint,
      container: container
    })), function (shareUri) {
      if (shareUri) {
        afterShare(shareUri);
        handleCancel();
        info(i18n('shareDialogCreatedSuccessfullyInfo'), 'success', 3000);
      } else {
        info(i18n('shareDialogGenerationProblemInfo'), 'error', 3000);
      }
    }, undefined, function () {
      return setLoading(false);
    });
  };
  var handleSubmit = function handleSubmit() {
    var errors = errorHandler(shareFolderState);
    var hasErrors = Object.keys(errors).length > 0;
    setErrors(errors);
    if (!hasErrors) {
      setLoading(true);
      var data = adaptDataBeforeSave(shareFolderState, container, foldersUuids);
      handleSubmitData(data);
    }
  };
  return /*#__PURE__*/_jsxs(Styled.FooterWrapper, {
    children: [/*#__PURE__*/_jsx(Styled.FooterButton, {
      disabled: loading,
      color: "basic",
      onClick: handleCancel,
      children: i18n('mutualizedCancelButtonLabel')
    }), /*#__PURE__*/_jsx(Styled.FooterButton, {
      $loading: loading,
      loading: loading,
      color: "primary",
      startIcon: /*#__PURE__*/_jsx(Share, {}),
      onClick: handleSubmit,
      children: i18n('mutualizedShareLabel')
    })]
  });
};
export default ShareFolderModalFooter;