UNPKG

@lyra/default-layout

Version:

The default layout components for Lyra

148 lines (133 loc) 4.82 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.SchemaErrors = SchemaErrors; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _SchemaErrors = require('./styles/SchemaErrors.css'); var _SchemaErrors2 = _interopRequireDefault(_SchemaErrors); var _errorIcon = require('part:@lyra/base/error-icon'); var _errorIcon2 = _interopRequireDefault(_errorIcon); var _warningIcon = require('part:@lyra/base/warning-icon'); var _warningIcon2 = _interopRequireDefault(_warningIcon); var _generateHelpUrl = require('@lyra/generate-help-url'); var _generateHelpUrl2 = _interopRequireDefault(_generateHelpUrl); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function renderPath(path) { return path.map(segment => { if (segment.kind === 'type') { return _react2.default.createElement( 'span', { className: _SchemaErrors2.default.segment }, _react2.default.createElement( 'span', { key: 'name', className: _SchemaErrors2.default.pathSegmentTypeName }, segment.name ), '\u2002', _react2.default.createElement( 'span', { key: 'type', className: _SchemaErrors2.default.pathSegmentTypeType }, segment.type ) ); } if (segment.kind === 'property') { return _react2.default.createElement( 'span', { className: _SchemaErrors2.default.segment }, _react2.default.createElement( 'span', { className: _SchemaErrors2.default.pathSegmentProperty }, segment.name ) ); } if (segment.kind === 'type') { return _react2.default.createElement( 'span', { className: _SchemaErrors2.default.segment }, _react2.default.createElement( 'span', { key: 'name', className: _SchemaErrors2.default.pathSegmentTypeName }, segment.name ), _react2.default.createElement( 'span', { key: 'type', className: _SchemaErrors2.default.pathSegmentTypeType }, segment.type ) ); } return null; }).filter(Boolean); } function SchemaErrors(props) { const problemGroups = props.problemGroups; return _react2.default.createElement( 'div', { className: _SchemaErrors2.default.root }, _react2.default.createElement( 'h2', { className: _SchemaErrors2.default.title }, 'Uh oh\u2026 found errors in schema' ), _react2.default.createElement( 'ul', { className: _SchemaErrors2.default.list }, problemGroups.map((group, i) => { return _react2.default.createElement( 'li', { key: i, className: _SchemaErrors2.default.listItem }, _react2.default.createElement( 'h2', { className: _SchemaErrors2.default.path }, renderPath(group.path) ), _react2.default.createElement( 'ul', { className: _SchemaErrors2.default.problems }, group.problems.map((problem, j) => _react2.default.createElement( 'li', { key: j, className: _SchemaErrors2.default[`problem_${problem.severity}`] }, _react2.default.createElement( 'div', { className: _SchemaErrors2.default.problemSeverity }, _react2.default.createElement( 'span', { className: _SchemaErrors2.default.problemSeverityIcon }, problem.severity === 'error' && _react2.default.createElement(_errorIcon2.default, null), problem.severity === 'warning' && _react2.default.createElement(_warningIcon2.default, null) ), _react2.default.createElement( 'span', { className: _SchemaErrors2.default.problemSeverityText }, problem.severity ) ), _react2.default.createElement( 'div', { className: _SchemaErrors2.default.problemContent }, _react2.default.createElement( 'div', { className: _SchemaErrors2.default.problemMessage }, problem.message ), problem.helpId && _react2.default.createElement( 'a', { className: _SchemaErrors2.default.problemLink, href: (0, _generateHelpUrl2.default)(problem.helpId), target: '_blank' }, 'View documentation' ) ) )) ) ); }) ) ); }