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