Repository URL to install this package:
|
Version:
3.12.20 ▾
|
import {
// Button, ModalActions, ModalContent, ModalTitle,
MenuItem, RadioGroup, Select, Notification } from '@scaleflex/ui/core';
import { MANAGE_ACCESS_MODE_IDS } from '@filerobot/utils/lib/constants';
import { useSelector } from 'react-redux';
import Styled from './ManageAccess.styled';
import AccessesList from './AccessesList';
import { getGalleryRoleLabel } from '../../GalleryRoleSelect/GalleryRoleSelect.utils';
import AddUserOrTeamModal from './AddUserOrTeamModal';
import useManageAccess from './useManageAccess.hook';
import { useExplorerI18n } from '../../../hooks';
import { selectAccessRoles } from '../../../slices/common.slice';
import { useEffect } from 'react';
import { jsx as _jsx } from "react/jsx-runtime";
import { jsxs as _jsxs } from "react/jsx-runtime";
import { Fragment as _Fragment } from "react/jsx-runtime";
var ManageAccessContent = function ManageAccessContent(_ref) {
var updateData = _ref.updateData,
setPrimaryButtonDisabled = _ref.setPrimaryButtonDisabled,
setIsModalLoading = _ref.setIsModalLoading,
setIsModalHidden = _ref.setIsModalHidden,
setStopEnterKeySubmits = _ref.setStopEnterKeySubmits,
folders = _ref.folders,
files = _ref.files;
var accessRoles = useSelector(selectAccessRoles);
var i18n = useExplorerI18n(function (_ref2) {
var i18n = _ref2.i18n;
return i18n;
});
// const setPluginState = [] // useExplorerContext(({ setPluginState }) => setPluginState)
var _useManageAccess = useManageAccess({
updateData: updateData,
folders: folders,
files: files
}),
mode = _useManageAccess.mode,
setMode = _useManageAccess.setMode,
isLoading = _useManageAccess.isLoading,
addNewAccessesToState = _useManageAccess.addNewAccessesToState,
accesses = _useManageAccess.accesses,
defaultAccessRoleId = _useManageAccess.defaultAccessRoleId,
setDefaultAccessRoleId = _useManageAccess.setDefaultAccessRoleId,
isShareModalVisible = _useManageAccess.isShareModalVisible,
setIsShareModalVisible = _useManageAccess.setIsShareModalVisible,
isInheritMode = _useManageAccess.isInheritMode,
deleteAccessFromState = _useManageAccess.deleteAccessFromState,
changeAccessRoleState = _useManageAccess.changeAccessRoleState,
saveAccesses = _useManageAccess.saveAccesses,
item = _useManageAccess.item,
inheritState = _useManageAccess.inheritState,
isHighestDefaultRoleSelected = _useManageAccess.isHighestDefaultRoleSelected,
accessesUuidsWithLowerRole = _useManageAccess.accessesUuidsWithLowerRole;
// const handleModalClose = () => setPluginState({ showManageAccessModal: false })
var handleShareModalClose = function handleShareModalClose() {
return setIsShareModalVisible(false);
};
var handleShareModalOpen = function handleShareModalOpen() {
return setIsShareModalVisible(true);
};
var handleModeChange = function handleModeChange(newMode) {
return function () {
return setMode(newMode);
};
};
var isFormValid = !accessesUuidsWithLowerRole.length;
useEffect(function () {
updateData({
saveAccesses: saveAccesses
});
}, [saveAccesses]);
useEffect(function () {
setPrimaryButtonDisabled(!isFormValid);
}, [isFormValid]);
useEffect(function () {
setIsModalLoading(isLoading);
}, [isLoading]);
useEffect(function () {
setIsModalHidden(isShareModalVisible);
setStopEnterKeySubmits(isShareModalVisible);
}, [isShareModalVisible]);
return /*#__PURE__*/_jsx(_Fragment, {
children: /*#__PURE__*/_jsxs(Styled.Container, {
children: [/*#__PURE__*/_jsxs("div", {
children: [(item === null || item === void 0 ? void 0 : item.path) && /*#__PURE__*/_jsx(Notification, {
message: i18n('explorerManageFolderPathNotification', {
folder_path: item.path
})
}), /*#__PURE__*/_jsx(Styled.H3, {
children: i18n('explorerManageAccessModeLabel')
}), /*#__PURE__*/_jsx(Styled.Hint, {
children: i18n('explorerManageAccessModeHint')
}), /*#__PURE__*/_jsxs(Styled.CheckboxesBlock, {
children: [/*#__PURE__*/_jsx(RadioGroup, {
label: i18n('explorerManageAccessModeInheritLabel'),
size: "md",
checked: mode === MANAGE_ACCESS_MODE_IDS.INHERIT,
onClick: handleModeChange(MANAGE_ACCESS_MODE_IDS.INHERIT),
disabled: isLoading
}), /*#__PURE__*/_jsx(RadioGroup, {
label: i18n('explorerManageAccessModeOverrideLabel'),
size: "md",
checked: mode === MANAGE_ACCESS_MODE_IDS.OVERRIDE,
onClick: handleModeChange(MANAGE_ACCESS_MODE_IDS.OVERRIDE),
disabled: isLoading
})]
})]
}), !isInheritMode && /*#__PURE__*/_jsxs(_Fragment, {
children: [/*#__PURE__*/_jsxs(Styled.Section, {
children: [/*#__PURE__*/_jsxs("div", {
children: [/*#__PURE__*/_jsx(Styled.H4, {
children: i18n('explorerManageAccessDefaultRoleLabel')
}), /*#__PURE__*/_jsx(Styled.Hint, {
children: i18n('explorerManageAccessDefaultRoleHint')
})]
}), /*#__PURE__*/_jsx(Select, {
value: isInheritMode ? inheritState === null || inheritState === void 0 ? void 0 : inheritState.roleId : defaultAccessRoleId,
onChange: setDefaultAccessRoleId,
disabled: isInheritMode || isLoading,
children: (accessRoles || []).map(function (role) {
return /*#__PURE__*/_jsx(MenuItem, {
value: role.id,
children: getGalleryRoleLabel(role.name, i18n)
}, role.id);
})
})]
}), /*#__PURE__*/_jsx(Styled.Section, {
children: /*#__PURE__*/_jsx(AccessesList, {
items: isInheritMode ? inheritState === null || inheritState === void 0 ? void 0 : inheritState.accesses : accesses,
isInheritMode: isInheritMode,
openShareModal: handleShareModalOpen,
deleteAccessFromState: deleteAccessFromState,
changeAccessRoleState: changeAccessRoleState,
defaultAccessRoleId: defaultAccessRoleId,
isHighestDefaultRoleSelected: isHighestDefaultRoleSelected,
accessesUuidsWithLowerRole: accessesUuidsWithLowerRole
})
})]
}), isShareModalVisible && /*#__PURE__*/_jsx(AddUserOrTeamModal, {
onClose: handleShareModalClose,
addNewAccessesToState: addNewAccessesToState,
accesses: accesses,
defaultAccessRoleId: defaultAccessRoleId
})]
})
});
};
export default ManageAccessContent;