UNPKG

@kids-reporter/cms-core

Version:
89 lines (87 loc) 3.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.controller = exports.Field = exports.Cell = exports.CardValue = void 0; var _react = _interopRequireDefault(require("react")); var _core = require("@keystone-ui/core"); var _fields = require("@keystone-ui/fields"); var _components = require("@keystone-6/core/admin-ui/components"); var _draftJs = require("draft-js"); var _draftEditor = require("@kids-reporter/draft-editor"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } // eslint-disable-line const Field = ({ field, value, onChange, autoFocus // eslint-disable-line }) => { return /*#__PURE__*/_react.default.createElement(_fields.FieldContainer, null, /*#__PURE__*/_react.default.createElement(_fields.FieldLabel, null, field.label, /*#__PURE__*/_react.default.createElement(_core.Stack, null, /*#__PURE__*/_react.default.createElement(_draftEditor.RichTextEditor, { disabledButtons: field.disabledButtons, editorState: value, onChange: editorState => onChange === null || onChange === void 0 ? void 0 : onChange(editorState) })))); }; exports.Field = Field; const Cell = ({ item, field, linkTo }) => { const value = item[field.path] + ''; return linkTo ? /*#__PURE__*/_react.default.createElement(_components.CellLink, linkTo, value) : /*#__PURE__*/_react.default.createElement(_components.CellContainer, null, value); }; exports.Cell = Cell; Cell.supportsLinkTo = true; const CardValue = ({ item, field }) => { return /*#__PURE__*/_react.default.createElement(_fields.FieldContainer, null, /*#__PURE__*/_react.default.createElement(_fields.FieldLabel, null, field.label), item[field.path]); }; exports.CardValue = CardValue; const controller = config => { var _config$fieldMeta; return { description: '', disabledButtons: ((_config$fieldMeta = config.fieldMeta) === null || _config$fieldMeta === void 0 ? void 0 : _config$fieldMeta.disabledButtons) ?? [], path: config.path, label: config.label, graphqlSelection: config.path, defaultValue: _draftJs.EditorState.createEmpty(), deserialize: data => { const rawContentState = data[config.path]; if (rawContentState === null) { return _draftJs.EditorState.createEmpty(); } try { const contentState = (0, _draftJs.convertFromRaw)(rawContentState); const editorState = _draftJs.EditorState.createWithContent(contentState); return editorState; } catch (err) { console.error(err); return _draftJs.EditorState.createEmpty(); } }, serialize: editorState => { if (!editorState) { return { [config.path]: null }; } try { const rawContentState = (0, _draftJs.convertToRaw)(editorState.getCurrentContent()); return { [config.path]: rawContentState }; } catch (err) { console.error(err); return { [config.path]: null }; } } }; }; exports.controller = controller;