UNPKG

meteor-interface

Version:

Simple Content Management System to generate your administration interface for Meteor and React.

107 lines (91 loc) 3.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireDefault(require("react")); var _semanticUiReact = require("semantic-ui-react"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } // Packages var WidgetSelector = function WidgetSelector(_ref) { var _ref$item = _ref.item, item = _ref$item === void 0 ? {} : _ref$item, _ref$collection = _ref.collection, collection = _ref$collection === void 0 ? {} : _ref$collection, ready = _ref.ready; if (!ready) { return null; } var list = collection.fields ? collection.fields.map(function (field) { var widget = null; switch (field.widget) { case 'string': widget = _react.default.createElement("div", null, item[field.name]); break; case 'multiline': widget = _react.default.createElement("div", { style: { whiteSpace: 'pre-line' }, dangerouslySetInnerHTML: { __html: item[field.name] } }); break; case 'html': widget = _react.default.createElement("div", { dangerouslySetInnerHTML: { __html: item[field.name] } }); break; case 'image': widget = _react.default.createElement(_semanticUiReact.Image, { size: "small", centered: true, rounded: true, src: item[field.name] }); break; case 'boolean': widget = _react.default.createElement(_semanticUiReact.Icon, { size: "huge", color: item[field.name] ? 'green' : 'red', name: item[field.name] ? 'check' : 'remove' }); break; case 'list': if (field.fields && field.fields.length) { widget = item[field.name] ? item[field.name].map(function (mark, i) { return _react.default.createElement(_semanticUiReact.Message, { key: i }, _react.default.createElement(_semanticUiReact.Segment.Group, null, _react.default.createElement(WidgetSelector, { collection: field, item: mark, ready: ready }))); }) : null; } else if (item[field.name] && item[field.name].length && typeof item[field.name][0] === 'string') { widget = _react.default.createElement(_semanticUiReact.List, { bulleted: true }, item[field.name].map(function (mark, i) { return _react.default.createElement(_semanticUiReact.List.Item, { key: i }, mark); })); } break; } return _react.default.createElement(_semanticUiReact.Segment, { key: field.name }, _react.default.createElement(_semanticUiReact.Label, { as: "a", color: "green", ribbon: true, size: "small" }, field.name), widget); }) : null; return list; }; var _default = WidgetSelector; exports.default = _default;