@orfeas126/box-ui-elements
Version:
Box UI Elements
60 lines (58 loc) • 2.21 kB
JavaScript
/**
*
* @file Content Explorer Delete Confirmation Dialog
* @author Box
*/
import * as React from 'react';
import { injectIntl } from 'react-intl';
import messages from '../messages';
import { ACCESS_NONE, ACCESS_OPEN, ACCESS_COLLAB, ACCESS_COMPANY } from '../../../constants';
import './ShareAccessSelect.scss';
const ShareAccessSelect = ({
className,
canSetShareAccess,
onChange,
item,
intl
}) => {
const {
allowed_shared_link_access_levels: allowedSharedAccessLevels,
permissions,
shared_link: sharedLink
} = item;
if (!allowedSharedAccessLevels) {
return /*#__PURE__*/React.createElement("span", null);
}
const {
access = ACCESS_NONE
} = sharedLink || {};
const {
can_set_share_access: allowShareAccessChange
} = permissions || {};
const changeHandler = ({
target
}) => onChange(target.value, item);
const allowOpen = allowedSharedAccessLevels.indexOf(ACCESS_OPEN) > -1;
const allowCollab = allowedSharedAccessLevels.indexOf(ACCESS_COLLAB) > -1;
const allowCompany = allowedSharedAccessLevels.indexOf(ACCESS_COMPANY) > -1;
const allowed = canSetShareAccess && allowShareAccessChange && (allowOpen || allowCompany || allowCollab);
if (!allowed) {
return /*#__PURE__*/React.createElement("span", null);
}
/* eslint-disable jsx-a11y/no-onchange */
return /*#__PURE__*/React.createElement("select", {
className: `be-share-access-select ${className}`,
onChange: changeHandler,
value: access
}, allowOpen ? /*#__PURE__*/React.createElement("option", {
value: ACCESS_OPEN
}, intl.formatMessage(messages.shareAccessOpen)) : null, allowCollab ? /*#__PURE__*/React.createElement("option", {
value: ACCESS_COLLAB
}, intl.formatMessage(messages.shareAccessCollab)) : null, allowCompany ? /*#__PURE__*/React.createElement("option", {
value: ACCESS_COMPANY
}, intl.formatMessage(messages.shareAccessCompany)) : null, /*#__PURE__*/React.createElement("option", {
value: ACCESS_NONE
}, access === ACCESS_NONE ? intl.formatMessage(messages.shareAccessNone) : intl.formatMessage(messages.shareAccessRemove)));
};
export default injectIntl(ShareAccessSelect);
//# sourceMappingURL=ShareAccessSelect.js.map