@sanity/default-layout
Version:
The default layout components for Sanity
66 lines (65 loc) • 5.03 kB
JavaScript
"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)));
}