@sanity/desk-tool
Version:
Tool for managing all sorts of content in a structured manner
60 lines (58 loc) • 2.03 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.DocumentBadges = DocumentBadges;
var _reactHooks = require("@sanity/react-hooks");
var _ui = require("@sanity/ui");
var _utils = require("part:@sanity/base/actions/utils");
var _react = _interopRequireDefault(require("react"));
var _useDocumentPane2 = require("../../useDocumentPane");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// @todo: remove the following line when part imports has been removed from this file
///<reference types="@sanity/types/parts" />
var BADGE_TONES = {
primary: 'primary',
success: 'positive',
warning: 'caution',
danger: 'critical'
};
function DocumentBadgesInner(_ref) {
var states = _ref.states;
return /*#__PURE__*/_react.default.createElement(_ui.Inline, {
space: 1
}, states.map((badge, index) => /*#__PURE__*/_react.default.createElement(_ui.Tooltip, {
content: badge.title && /*#__PURE__*/_react.default.createElement(_ui.Box, {
padding: 2
}, /*#__PURE__*/_react.default.createElement(_ui.Text, {
size: 1
}, badge.title)),
disabled: !badge.title,
key: String(index),
placement: "top",
portal: true
}, /*#__PURE__*/_react.default.createElement(_ui.Badge, {
fontSize: 1,
mode: "outline",
paddingX: 2,
paddingY: 1,
radius: 4,
tone: badge.color ? BADGE_TONES[badge.color] : undefined,
style: {
whiteSpace: 'nowrap'
}
}, badge.label))));
}
function DocumentBadges() {
var _useDocumentPane = (0, _useDocumentPane2.useDocumentPane)(),
badges = _useDocumentPane.badges,
documentId = _useDocumentPane.documentId,
documentType = _useDocumentPane.documentType;
var editState = (0, _reactHooks.useEditState)(documentId, documentType, 'low');
if (!badges) return null;
return /*#__PURE__*/_react.default.createElement(_utils.RenderBadgeCollectionState, {
component: DocumentBadgesInner,
badges: badges,
badgeProps: editState
});
}