UNPKG

@kids-reporter/cms-core

Version:
104 lines (102 loc) 3.05 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.controller = exports.Field = exports.Cell = exports.CardValue = void 0; var _components = require("@keystone-6/core/admin-ui/components"); var _core = require("@keystone-ui/core"); var _fields = require("@keystone-ui/fields"); var _draftEditor = require("@kids-reporter/draft-editor"); var _draftJs = require("draft-js"); var _react = _interopRequireDefault(require("react")); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } // eslint-disable-line const Field = ({ field, value, onChange, autoFocus // eslint-disable-line }) => { return /*#__PURE__*/(0, _jsxRuntime.jsx)(_fields.FieldContainer, { children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_fields.FieldLabel, { children: [field.label, /*#__PURE__*/(0, _jsxRuntime.jsx)(_core.Stack, { children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_draftEditor.RichTextEditor, { disabledButtons: field.disabledButtons, editorState: value, onChange: editorState => onChange?.(editorState) }) })] }) }); }; exports.Field = Field; const Cell = ({ item, field, linkTo }) => { const value = item[field.path] + ''; return linkTo ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.CellLink, { ...linkTo, children: value }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.CellContainer, { children: value }); }; exports.Cell = Cell; Cell.supportsLinkTo = true; const CardValue = ({ item, field }) => { return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_fields.FieldContainer, { children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_fields.FieldLabel, { children: field.label }), item[field.path]] }); }; exports.CardValue = CardValue; const controller = config => { return { description: '', disabledButtons: 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;