@filerobot/approvals
Version:
Asset approvals package for Filerobot
63 lines • 2.38 kB
JavaScript
import { useEffect } from 'react';
import { useSelector, useDispatch } from 'react-redux';
import { activateApproval, fetchFileApprovals, selectActiveApproval, selectApprovalsArray, selectApprovalsLoading, selectCurrentFile } from '../../common.slice';
import DetailsView from './DetailsView';
import ListView from './ListView';
import Styled from './ApprovalsTab.styled';
import { jsx as _jsx } from "react/jsx-runtime";
var ApprovalsTab = function ApprovalsTab(_ref) {
var _ref$isModalViewMode = _ref.isModalViewMode,
isModalViewMode = _ref$isModalViewMode === void 0 ? false : _ref$isModalViewMode,
onClickDetailsButton = _ref.onClickDetailsButton,
selectedFile = _ref.selectedFile;
var dispatch = useDispatch();
var currentFile = useSelector(selectCurrentFile);
var activeApproval = useSelector(selectActiveApproval);
var isLoading = useSelector(selectApprovalsLoading);
var approvals = useSelector(function (state) {
return selectApprovalsArray(state, isModalViewMode);
});
var originalFile = currentFile || selectedFile;
var fileUuid = originalFile === null || originalFile === void 0 ? void 0 : originalFile.uuid;
useEffect(function () {
var prevValue = document.body.style.overflow;
document.body.style.overflow = 'hidden';
return function () {
document.body.style.overflow = prevValue;
};
}, []);
useEffect(function () {
var abortFunc;
if (fileUuid) {
var skipFetchVersionsApprovals = !!isModalViewMode;
var request = dispatch(fetchFileApprovals({
originalFile: originalFile,
skipFetchVersionsApprovals: skipFetchVersionsApprovals
}));
var abort = request.abort;
abortFunc = abort;
}
return function () {
if (typeof abortFunc === 'function') {
abortFunc();
}
dispatch(activateApproval({
updateUrl: false
}));
};
}, [fileUuid]);
return /*#__PURE__*/_jsx(Styled.Container, {
children: activeApproval ? /*#__PURE__*/_jsx(DetailsView, {
approval: activeApproval,
originalFile: originalFile
}) : /*#__PURE__*/_jsx(ListView, {
approvals: approvals,
isModalViewMode: isModalViewMode,
isLoading: isLoading,
onClickDetailsButton: onClickDetailsButton,
selectedFile: selectedFile,
originalFile: originalFile
})
});
};
export default ApprovalsTab;