@sanity/desk-tool
Version:
Tool for managing all sorts of content in a structured manner
71 lines (67 loc) • 2.75 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.ActionStateDialog = ActionStateDialog;
var _autoId = require("@reach/auto-id");
var _ui = require("@sanity/ui");
var _react = _interopRequireDefault(require("react"));
var _ConfirmDialog = require("./dialogs/ConfirmDialog");
var _DeprecatedErrorDialog = require("./dialogs/DeprecatedErrorDialog");
var _DeprecatedSuccessDialog = require("./dialogs/DeprecatedSuccessDialog");
var _ModalDialog = require("./dialogs/ModalDialog");
var _PopoverDialog = require("./dialogs/PopoverDialog");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function ActionStateDialog(props) {
var dialog = props.dialog,
_props$referenceEleme = props.referenceElement,
referenceElement = _props$referenceEleme === void 0 ? null : _props$referenceEleme;
var dialogId = (0, _autoId.useId)() || '';
// @todo: rename this type type "component" or "node"?
if (dialog.type === 'legacy') {
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, dialog.content);
}
if (dialog.type === 'confirm') {
return /*#__PURE__*/_react.default.createElement(_ConfirmDialog.ConfirmDialog, {
dialog: dialog,
referenceElement: referenceElement
});
}
if (dialog.type === 'modal') {
return /*#__PURE__*/_react.default.createElement(_ModalDialog.ModalDialog, {
dialog: dialog
});
}
if (dialog.type === 'popover') {
return /*#__PURE__*/_react.default.createElement(_PopoverDialog.PopoverDialog, {
dialog: dialog,
referenceElement: referenceElement
});
}
if (dialog.type === 'success') {
return /*#__PURE__*/_react.default.createElement(_DeprecatedSuccessDialog.DeprecatedSuccessDialog, {
dialog: dialog
});
}
if (dialog.type === 'error') {
return /*#__PURE__*/_react.default.createElement(_DeprecatedErrorDialog.DeprecatedErrorDialog, {
dialog: dialog
});
}
// @todo: add validation?
var unknownDialog = dialog;
// eslint-disable-next-line no-console
console.warn("Unsupported dialog type ".concat(unknownDialog.type));
return /*#__PURE__*/_react.default.createElement(_ui.Dialog, {
id: dialogId
// eslint-disable-next-line react/jsx-handler-names
,
onClose: unknownDialog.onClose
// eslint-disable-next-line react/jsx-handler-names
,
onClickOutside: unknownDialog.onClose,
width: 2
}, /*#__PURE__*/_react.default.createElement(_ui.Box, {
padding: 4
}, unknownDialog.content || /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "Unexpected dialog type (", /*#__PURE__*/_react.default.createElement("code", null, unknownDialog.type), ")")));
}