UNPKG

@sanity/default-layout

Version:

The default layout components for Sanity

60 lines (59 loc) 2.38 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ErrorScreen = ErrorScreen; var _react = _interopRequireDefault(require("react")); var _ui = require("@sanity/ui"); var _ErrorAccordion = require("./main/ErrorAccordion"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function getErrorWithStack(err) { var stack = err.stack || ''; var message = err.message; return stack.indexOf(message) === -1 ? "".concat(message, "\n\n").concat(stack) : stack; } function limitStackLength(stack) { return stack.split('\n').slice(0, 15).join('\n'); } function formatStack(stack) { return stack // Prettify builder functions .replace(/\(\.\.\.\)\./g, '(...)\n .') // Remove webpack cruft from function names .replace(/__WEBPACK_IMPORTED_MODULE_\d+_+/g, '') // Remove default export postfix from function names .replace(/___default\./g, '.') // Replace full host path, leave only path to JS-file .replace(new RegExp(" \\(https?:\\/\\/".concat(window.location.host), 'g'), ' ('); } function ErrorScreen(props) { var description = props.description, error = props.error, title = props.title; return /*#__PURE__*/_react.default.createElement(_ui.Card, { height: "fill", paddingX: [3, 4, 5, 7], paddingY: [5, 5, 6], sizing: "border", overflow: "auto" }, /*#__PURE__*/_react.default.createElement(_ui.Container, null, /*#__PURE__*/_react.default.createElement(_ui.Stack, { space: 4 }, /*#__PURE__*/_react.default.createElement(_ui.Heading, { as: "h1" }, title || /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "Unknown error")), description && /*#__PURE__*/_react.default.createElement(_ui.Text, { as: "p", muted: true }, description)), __DEV__ && /*#__PURE__*/_react.default.createElement(_ui.Box, { marginTop: 5 }, error.stack ? /*#__PURE__*/_react.default.createElement(_ErrorAccordion.ErrorAccordion, { open: __DEV__, title: "Stack trace" }, /*#__PURE__*/_react.default.createElement(_ui.Code, { size: 1 }, formatStack(limitStackLength(getErrorWithStack(error))))) : /*#__PURE__*/_react.default.createElement(_ErrorAccordion.ErrorAccordion, { open: __DEV__, title: "Error" }, /*#__PURE__*/_react.default.createElement(_ui.Code, { size: 1 }, error.message))))); }