@story-telling-reporter/cms-core
Version:
105 lines (103 loc) • 3.28 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("@stroy-telling-reporter/draft-editor");
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// 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 === null || onChange === void 0 ? void 0 : 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 => {
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(decorator),
deserialize: data => {
const rawContentState = data[config.path];
if (rawContentState === null) {
return _draftJs.EditorState.createEmpty(decorator);
}
try {
const contentState = (0, _draftJs.convertFromRaw)(rawContentState);
const editorState = _draftJs.EditorState.createWithContent(contentState, decorator);
return editorState;
} catch (err) {
console.error(err);
return _draftJs.EditorState.createEmpty(decorator);
}
},
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;