@sanity/desk-tool
Version:
Tool for managing all sorts of content in a structured manner
63 lines (62 loc) • 2.95 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.PublishStatus = PublishStatus;
var _hooks = require("@sanity/base/hooks");
var _ui = require("@sanity/ui");
var _icons = require("@sanity/icons");
var _react = _interopRequireDefault(require("react"));
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.Flex)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n cursor: default;\n"])));
function PublishStatus(props) {
var collapsed = props.collapsed,
disabled = props.disabled,
lastPublished = props.lastPublished,
lastUpdated = props.lastUpdated,
liveEdit = props.liveEdit;
var lastPublishedTimeAgo = (0, _hooks.useTimeAgo)(lastPublished || '', {
minimal: true,
agoSuffix: true
});
var lastPublishedTime = (0, _hooks.useTimeAgo)(lastPublished || '', {
minimal: true
});
var lastUpdatedTimeAgo = (0, _hooks.useTimeAgo)(lastUpdated || '', {
minimal: true,
agoSuffix: true
});
var lastUpdatedTime = (0, _hooks.useTimeAgo)(lastUpdated || '', {
minimal: true
});
return /*#__PURE__*/_react.default.createElement(Root, {
align: "center",
"data-ui": "SessionLayout",
sizing: "border"
}, /*#__PURE__*/_react.default.createElement(_ui.Tooltip, {
portal: true,
content: /*#__PURE__*/_react.default.createElement(_ui.Stack, {
padding: 3,
space: 3
}, /*#__PURE__*/_react.default.createElement(_ui.Text, {
size: 1
}, liveEdit ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "Last updated ", lastUpdated ? lastUpdatedTimeAgo : lastPublishedTimeAgo) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "Last published ", lastPublishedTimeAgo)))
}, /*#__PURE__*/_react.default.createElement(_ui.Button, {
mode: "bleed",
tone: liveEdit ? 'critical' : 'positive',
tabIndex: -1,
disabled: disabled
}, /*#__PURE__*/_react.default.createElement(_ui.Flex, {
align: "center"
}, /*#__PURE__*/_react.default.createElement(_ui.Box, {
marginRight: collapsed ? 0 : 3
}, /*#__PURE__*/_react.default.createElement(_ui.Text, {
size: 2
}, liveEdit ? /*#__PURE__*/_react.default.createElement(_icons.PlayIcon, null) : /*#__PURE__*/_react.default.createElement(_icons.PublishIcon, null))), !collapsed && /*#__PURE__*/_react.default.createElement(_ui.Text, {
size: 1,
weight: "medium"
}, liveEdit ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, lastUpdated ? lastUpdatedTime : lastPublishedTime) : lastPublishedTime)))));
}