UNPKG

@sanity/desk-tool

Version:

Tool for managing all sorts of content in a structured manner

54 lines (53 loc) 2.62 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PermissionCheckBanner = PermissionCheckBanner; var _react = _interopRequireDefault(require("react")); var _hooks = require("@sanity/base/hooks"); var _ui = require("@sanity/ui"); var _icons = require("@sanity/icons"); var _styledComponents = _interopRequireDefault(require("styled-components")); var _templateObject; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } var Root = (0, _styledComponents.default)(_ui.Card)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n position: relative;\n z-index: 50;\n"]))); function PermissionCheckBanner(_ref) { var _currentUser$roles, _currentUser$roles2; var granted = _ref.granted, requiredPermission = _ref.requiredPermission; var _useCurrentUser = (0, _hooks.useCurrentUser)(), currentUser = _useCurrentUser.value; var plural = (currentUser === null || currentUser === void 0 || (_currentUser$roles = currentUser.roles) === null || _currentUser$roles === void 0 ? void 0 : _currentUser$roles.length) !== 1; var roles = join((currentUser === null || currentUser === void 0 || (_currentUser$roles2 = currentUser.roles) === null || _currentUser$roles2 === void 0 ? void 0 : _currentUser$roles2.map(r => /*#__PURE__*/_react.default.createElement("code", { key: r.name }, r.title))) || [], ', '); if (granted) return null; return /*#__PURE__*/_react.default.createElement(Root, { "data-testid": "permission-check-banner", shadow: 1, tone: "transparent" }, /*#__PURE__*/_react.default.createElement(_ui.Container, { paddingX: 4, paddingY: 3, sizing: "border", width: 1 }, /*#__PURE__*/_react.default.createElement(_ui.Flex, { align: "flex-start" }, /*#__PURE__*/_react.default.createElement(_ui.Text, { size: 1 }, /*#__PURE__*/_react.default.createElement(_icons.ReadOnlyIcon, null)), /*#__PURE__*/_react.default.createElement(_ui.Box, { flex: 1, marginLeft: 3 }, /*#__PURE__*/_react.default.createElement(_ui.Text, { size: 1 }, "Your role", plural && 's', " ", roles, " ", plural ? 'do' : 'does', " not have permissions to", ' ', requiredPermission, " this document."))))); } function join(array, sep) { return array.reduce((result, item) => { if (result === null) { return [item]; } return result.concat([sep, item]); }, null); }