UNPKG

@sanity/desk-tool

Version:

Tool for managing all sorts of content in a structured manner

74 lines (73 loc) 3.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PaneItemPreview = void 0; var _presence = require("@sanity/base/presence"); var _ui = require("@sanity/ui"); var _preview = require("part:@sanity/base/preview"); var _react = _interopRequireDefault(require("react")); var _DraftStatus = require("../DraftStatus"); var _PublishedStatus = require("../PublishedStatus"); var _helpers = require("./helpers"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } // @todo: remove the following line when part imports has been removed from this file ///<reference types="@sanity/types/parts" /> class PaneItemPreview extends _react.default.Component { constructor(props) { super(props); _defineProperty(this, "state", {}); _defineProperty(this, "subscription", void 0); var value = props.value, schemaType = props.schemaType; var title = value.title; var sync = true; this.subscription = (0, _helpers.getPreviewStateObservable)(schemaType, value._id, title).subscribe(state => { if (sync) { this.state = state; } else { this.setState(state); } }); sync = false; } componentWillUnmount() { if (this.subscription) { this.subscription.unsubscribe(); } } render() { var _this$props = this.props, icon = _this$props.icon, layout = _this$props.layout, presence = _this$props.presence, value = _this$props.value; var _this$state = this.state, draft = _this$state.draft, published = _this$state.published, isLoading = _this$state.isLoading; var status = isLoading ? null : /*#__PURE__*/_react.default.createElement(_ui.Inline, { space: 4 }, presence && presence.length > 0 && /*#__PURE__*/_react.default.createElement(_presence.DocumentPreviewPresence, { presence: presence }), /*#__PURE__*/_react.default.createElement(_PublishedStatus.PublishedStatus, { document: published }), /*#__PURE__*/_react.default.createElement(_DraftStatus.DraftStatus, { document: draft })); return /*#__PURE__*/_react.default.createElement(_preview.SanityDefaultPreview, { value: (0, _helpers.getValueWithFallback)({ value, draft, published }), isPlaceholder: isLoading, icon: icon, layout: layout, status: status }); } } exports.PaneItemPreview = PaneItemPreview;