UNPKG

@sanity/desk-tool

Version:

Tool for managing all sorts of content in a structured manner

63 lines (62 loc) 2.95 kB
"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))))); }