@kids-reporter/cms-core
Version:
89 lines (87 loc) • 3.09 kB
JavaScript
;
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;