UNPKG

@filerobot/approvals

Version:

Asset approvals package for Filerobot

91 lines 4.61 kB
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _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(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } 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(r) { if (Array.isArray(r)) return r; } import { useState, useMemo } from 'react'; import { useDispatch } from 'react-redux'; import { FV } from '@filerobot/common'; import { Popper } from '@scaleflex/ui/core'; import ApprovalStatus from '@filerobot/common/lib/ApprovalStatus'; import ApprovalsTab from '../ApprovalsTab'; import { activateApproval, approvalActivated } from '../../common.slice'; import Styled from './ApprovalInfoPopup.styled'; import RequsetApprovalPopup from './RequsetApprovalPopup'; import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime"; var ApprovalInfoPopup = function ApprovalInfoPopup(_ref) { var _originalFile$approva; var i18n = _ref.i18n, file = _ref.file, navigateToApprovalsTab = _ref.navigateToApprovalsTab, selectedFile = _ref.selectedFile, smallerFont = _ref.smallerFont; var dispatch = useDispatch(); var _useState = useState(null), _useState2 = _slicedToArray(_useState, 2), anchor = _useState2[0], setAnchor = _useState2[1]; var originalFile = file || selectedFile; var open = !!anchor; var approvalStatus = originalFile === null || originalFile === void 0 ? void 0 : (_originalFile$approva = originalFile.approval) === null || _originalFile$approva === void 0 ? void 0 : _originalFile$approva.latest; var fileUuid = originalFile === null || originalFile === void 0 ? void 0 : originalFile.uuid; var onClickDetailsButton = function onClickDetailsButton(approval) { dispatch(approvalActivated(approval.uuid)); navigateToApprovalsTab(); }; var handleOpenModal = function handleOpenModal(_ref2) { var currentTarget = _ref2.currentTarget; setAnchor(currentTarget); dispatch(activateApproval()); }; var handleCloseMenu = function handleCloseMenu() { setAnchor(null); }; var memoizedApprovalsTab = useMemo(function () { if (!open) return null; if (!approvalStatus) { return /*#__PURE__*/_jsx(RequsetApprovalPopup, { i18n: i18n, navigateToApprovalsTab: navigateToApprovalsTab }); } return /*#__PURE__*/_jsx(ApprovalsTab, { onClickDetailsButton: onClickDetailsButton, selectedFile: selectedFile, isModalViewMode: true }); }, [fileUuid, open]); return /*#__PURE__*/_jsxs(_Fragment, { children: [/*#__PURE__*/_jsxs(Styled.StatusLabel, { onClick: handleOpenModal, children: [/*#__PURE__*/_jsx(ApprovalStatus, { statusCode: approvalStatus, showIcon: true, labelFontVariant: smallerFont ? FV.LabelMedium : FV.LabelLarge, i18n: i18n, size: smallerFont ? 14 : 16, gap: smallerFont ? 6 : 8 }), /*#__PURE__*/_jsx(Styled.ArrowDown, { open: open })] }), /*#__PURE__*/_jsx(Popper, { open: open, anchorEl: anchor, overlay: true, onClick: handleCloseMenu, popperOptions: { modifiers: [{ name: 'offset', options: { offset: [-8, 8] } }] }, children: /*#__PURE__*/_jsx(Styled.ModalContent, { children: memoizedApprovalsTab }) })] }); }; export default ApprovalInfoPopup;