@orfeas126/box-ui-elements
Version:
Box UI Elements
59 lines • 3.67 kB
JavaScript
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
import * as React from 'react';
import { FormattedMessage } from 'react-intl';
import Toggle from '../../components/toggle';
import { RadioButton, RadioGroup } from '../../components/radio';
import Link from '../../components/link/Link';
import IconAlertDefault from '../../icons/general/IconAlertDefault';
import messages from './messages';
import './CascadePolicy.scss';
const COMMUNITY_LINK = 'https://support.box.com/hc/en-us/articles/360044195873-Cascading-metadata-in-folders';
const CascadePolicy = ({
canEdit,
isCascadingEnabled,
isCascadingOverwritten,
isCustomMetadata,
onCascadeToggle,
onCascadeModeChange,
shouldShowCascadeOptions
}) => {
const readOnlyState = isCascadingEnabled ? /*#__PURE__*/React.createElement("div", {
className: "metadata-cascade-notice"
}, /*#__PURE__*/React.createElement(FormattedMessage, messages.metadataCascadePolicyEnabledInfo)) : null;
return canEdit ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
className: "metadata-cascade-editor"
}, /*#__PURE__*/React.createElement("div", {
className: "metadata-cascade-enable"
}, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(FormattedMessage, _extends({
tagName: "strong"
}, messages.enableCascadePolicy)), !isCustomMetadata && /*#__PURE__*/React.createElement(Toggle, {
className: `metadata-cascade-toggle ${isCascadingEnabled ? 'cascade-on' : 'cascade-off'}`,
isOn: isCascadingEnabled,
label: "",
onChange: e => onCascadeToggle(e.target.checked)
})), !isCustomMetadata ? /*#__PURE__*/React.createElement("div", {
className: "cascade-policy-text"
}, /*#__PURE__*/React.createElement(FormattedMessage, messages.applyCascadePolicyText), "\xA0", /*#__PURE__*/React.createElement(Link, {
className: "cascade-policy-learnmore-link",
href: COMMUNITY_LINK,
target: "_blank"
}, /*#__PURE__*/React.createElement(FormattedMessage, messages.cascadePolicyLearnMore))) : /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(FormattedMessage, messages.cannotApplyCascadePolicyText)))), shouldShowCascadeOptions && /*#__PURE__*/React.createElement("div", {
className: "metadata-cascade-editor"
}, /*#__PURE__*/React.createElement("div", {
className: "metadata-cascading-mode"
}, /*#__PURE__*/React.createElement(FormattedMessage, messages.cascadePolicyModeQuestion), /*#__PURE__*/React.createElement("div", {
className: "metadata-operation-not-immediate"
}, /*#__PURE__*/React.createElement(IconAlertDefault, null), /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(FormattedMessage, messages.operationNotImmediate))), /*#__PURE__*/React.createElement(RadioGroup, {
className: "metadata-cascading-options",
onChange: e => onCascadeModeChange(e.target.value === 'overwrite'),
value: isCascadingOverwritten ? 'overwrite' : 'skip'
}, /*#__PURE__*/React.createElement(RadioButton, {
label: /*#__PURE__*/React.createElement(FormattedMessage, messages.cascadePolicySkipMode),
value: "skip"
}), /*#__PURE__*/React.createElement(RadioButton, {
label: /*#__PURE__*/React.createElement(FormattedMessage, messages.cascadePolicyOverwriteMode),
value: "overwrite"
}))))) : readOnlyState;
};
export default CascadePolicy;
//# sourceMappingURL=CascadePolicy.js.map