UNPKG

@sanity/desk-tool

Version:

Tool for managing all sorts of content in a structured manner

71 lines (67 loc) 2.75 kB
"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), ")"))); }