@sanity/form-builder
Version:
Sanity form builder
62 lines (61 loc) • 4.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = Markers;
var _react = _interopRequireWildcard(require("react"));
var _types = require("@sanity/types");
var _ui = require("@sanity/ui");
var _icons = require("@sanity/icons");
var _styledComponents = _interopRequireWildcard(require("styled-components"));
var _legacyParts = require("../../../legacyParts");
var _templateObject;
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
var getIcon = level => {
if (level === 'warning') {
return /*#__PURE__*/_react.default.createElement(_icons.WarningOutlineIcon, null);
}
return /*#__PURE__*/_react.default.createElement(_icons.InfoOutlineIcon, null);
};
var IconText = (0, _styledComponents.default)(_ui.Text)(_ref => {
var theme = _ref.theme;
return (0, _styledComponents.css)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n &[data-info] {\n color: ", ";\n }\n\n &[data-warning] {\n color: ", ";\n }\n\n &[data-error] {\n color: ", ";\n }\n "])), theme.sanity.color.muted.primary.enabled.fg, theme.sanity.color.muted.caution.enabled.fg, theme.sanity.color.muted.critical.enabled.fg);
});
function Markers(props) {
var markers = props.markers,
renderCustomMarkers = props.renderCustomMarkers;
var customMarkersForBlock = (0, _react.useMemo)(() => markers.filter(marker => !(0, _types.isValidationMarker)(marker)), [markers]);
var validationMarkersForBlock = (0, _react.useMemo)(() => markers.filter(marker => (0, _types.isValidationMarker)(marker)), [markers]);
if (markers.length === 0) {
return null;
}
return /*#__PURE__*/_react.default.createElement(_ui.Stack, {
space: 1
}, validationMarkersForBlock.length > 0 && validationMarkersForBlock.map((_ref2, index) => {
var item = _ref2.item,
level = _ref2.level;
return (
/*#__PURE__*/
// eslint-disable-next-line react/no-array-index-key
_react.default.createElement(_ui.Flex, {
key: "validationItem-".concat(index)
}, /*#__PURE__*/_react.default.createElement(_ui.Box, {
marginRight: 2,
marginBottom: index + 1 === validationMarkersForBlock.length ? 0 : 2
}, /*#__PURE__*/_react.default.createElement(IconText, {
size: 1,
"data-error": level === 'error' ? '' : undefined,
"data-warning": level === 'warning' ? '' : undefined,
"data-info": level === 'info' ? '' : undefined
}, getIcon(level))), /*#__PURE__*/_react.default.createElement(_ui.Box, null, /*#__PURE__*/_react.default.createElement(_ui.Text, {
size: 1
}, (item === null || item === void 0 ? void 0 : item.message) || 'Error')))
);
}), customMarkersForBlock.length > 0 && /*#__PURE__*/_react.default.createElement(_ui.Box, {
marginTop: validationMarkersForBlock.length > 0 ? 3 : 0
}, renderCustomMarkers && renderCustomMarkers(customMarkersForBlock), !renderCustomMarkers && /*#__PURE__*/_react.default.createElement(_legacyParts.CustomMarkers, {
markers: markers
})));
}