UNPKG

@sanity/default-layout

Version:

The default layout components for Sanity

66 lines (65 loc) 5.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CreateDocumentItem = CreateDocumentItem; var _components = require("@sanity/base/components"); var _icons = require("@sanity/icons"); var _ui = require("@sanity/ui"); var _react = _interopRequireWildcard(require("react")); var _styledComponents = _interopRequireDefault(require("styled-components")); var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5; /* eslint-disable no-nested-ternary */ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } 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.Box)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n height: 100%;\n\n a {\n color: currentColor;\n text-decoration: none;\n }\n\n svg[data-sanity-icon] {\n margin: 0;\n }\n"]))); var TooltipContentBox = (0, _styledComponents.default)(_ui.Box)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n max-width: 300px;\n"]))); var DisabledButtonWrapper = _styledComponents.default.div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n height: 100%;\n"]))); var StyledIntentButton = (0, _styledComponents.default)(_components.IntentButton)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n display: flex;\n height: 100%;\n width: 100%;\n align-items: flex-start;\n"]))); var StyledButton = (0, _styledComponents.default)(_ui.Button)(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n display: flex;\n height: 100%;\n width: 100%;\n align-items: flex-start;\n"]))); function CreateDocumentItem(_ref) { var description = _ref.description, granted = _ref.granted, title = _ref.title, subtitle = _ref.subtitle, icon = _ref.icon, template = _ref.template, parameters = _ref.parameters, currentUser = _ref.currentUser, onClick = _ref.onClick; var params = (0, _react.useMemo)(() => granted && [{ type: template.schemaType, template: template.id }, parameters], [granted, parameters, template.id, template.schemaType]); var children = /*#__PURE__*/_react.default.createElement(Root, null, /*#__PURE__*/_react.default.createElement(_components.TemplatePreview, { description: description, media: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, typeof icon === 'function' ? /*#__PURE__*/_react.default.createElement(icon) : typeof icon === 'string' ? /*#__PURE__*/_react.default.createElement("span", null, icon) : /*#__PURE__*/_react.default.isValidElement(icon) ? icon : /*#__PURE__*/_react.default.createElement(_icons.DocumentIcon, null)), subtitle: subtitle, title: title })); if (granted) { return /*#__PURE__*/_react.default.createElement(StyledIntentButton, { "data-testid": "create-document-item-".concat(template.id), fontSize: 2, intent: "create", mode: "ghost", onClick: onClick, params: params, title: subtitle ? "Create new ".concat(title, " (").concat(subtitle, ")") : "Create new ".concat(title) }, children); } return /*#__PURE__*/_react.default.createElement(_ui.Tooltip, { content: /*#__PURE__*/_react.default.createElement(TooltipContentBox, { padding: 2 }, /*#__PURE__*/_react.default.createElement(_components.InsufficientPermissionsMessage, { currentUser: currentUser, operationLabel: "create this document" })) }, /*#__PURE__*/_react.default.createElement(DisabledButtonWrapper, null, /*#__PURE__*/_react.default.createElement(StyledButton, { "aria-label": "insufficient permissions", mode: "ghost", disabled: true }, children))); }