expose widgetValueSerializer registry
This commit is contained in:
parent
1c0bb6a877
commit
ffbd8d22cc
@ -6,7 +6,7 @@ import { currentBackend } from '../backends/backend';
|
|||||||
import { getIntegrationProvider } from '../integrations';
|
import { getIntegrationProvider } from '../integrations';
|
||||||
import { getAsset, selectIntegration } from '../reducers';
|
import { getAsset, selectIntegration } from '../reducers';
|
||||||
import { createEntry } from '../valueObjects/Entry';
|
import { createEntry } from '../valueObjects/Entry';
|
||||||
import { controlValueSerializers } from '../components/Widgets/serializers';
|
import registry from '../lib/registry';
|
||||||
|
|
||||||
const { notifSend } = notifActions;
|
const { notifSend } = notifActions;
|
||||||
|
|
||||||
@ -223,7 +223,7 @@ export function loadEntry(collection, slug) {
|
|||||||
return fields.reduce((acc, field) => {
|
return fields.reduce((acc, field) => {
|
||||||
const fieldName = field.get('name');
|
const fieldName = field.get('name');
|
||||||
const value = values[fieldName];
|
const value = values[fieldName];
|
||||||
const serializer = controlValueSerializers[field.get('widget')];
|
const serializer = registry.getWidgetValueSerializer(field.get('widget'));
|
||||||
if (isArray(value) && !isEmpty(value)) {
|
if (isArray(value) && !isEmpty(value)) {
|
||||||
acc[fieldName] = value.map(val => deserializeValues(val, field.get('fields')));
|
acc[fieldName] = value.map(val => deserializeValues(val, field.get('fields')));
|
||||||
} else if (isObject(value) && !isEmpty(value)) {
|
} else if (isObject(value) && !isEmpty(value)) {
|
||||||
@ -293,7 +293,7 @@ export function persistEntry(collection) {
|
|||||||
return fields.reduce((acc, field) => {
|
return fields.reduce((acc, field) => {
|
||||||
const fieldName = field.get('name');
|
const fieldName = field.get('name');
|
||||||
const value = values.get(fieldName);
|
const value = values.get(fieldName);
|
||||||
const serializer = controlValueSerializers[field.get('widget')];
|
const serializer = registry.getWidgetValueSerializer(field.get('widget'));
|
||||||
if (List.isList(value)) {
|
if (List.isList(value)) {
|
||||||
return acc.set(fieldName, value.map(val => serializeValues(val, field.get('fields'))));
|
return acc.set(fieldName, value.map(val => serializeValues(val, field.get('fields'))));
|
||||||
} else if (Map.isMap(value)) {
|
} else if (Map.isMap(value)) {
|
||||||
|
@ -9,7 +9,6 @@ import remarkToMarkdown from 'remark-stringify';
|
|||||||
import htmlToRehype from 'rehype-parse';
|
import htmlToRehype from 'rehype-parse';
|
||||||
import rehypeToRemark from 'rehype-remark';
|
import rehypeToRemark from 'rehype-remark';
|
||||||
import registry from '../../../../lib/registry';
|
import registry from '../../../../lib/registry';
|
||||||
import { registerControlValueSerializer } from '../../serializers';
|
|
||||||
import { createAssetProxy } from '../../../../valueObjects/AssetProxy';
|
import { createAssetProxy } from '../../../../valueObjects/AssetProxy';
|
||||||
import { buildKeymap } from './keymap';
|
import { buildKeymap } from './keymap';
|
||||||
import createMarkdownParser from './parser';
|
import createMarkdownParser from './parser';
|
||||||
@ -18,7 +17,7 @@ import { Sticky } from '../../../UI/Sticky/Sticky';
|
|||||||
import styles from './index.css';
|
import styles from './index.css';
|
||||||
|
|
||||||
// Register handler to transform html to markdown before persist
|
// Register handler to transform html to markdown before persist
|
||||||
registerControlValueSerializer('markdown', {
|
registry.registerWidgetValueSerializer('markdown', {
|
||||||
serialize: value => unified()
|
serialize: value => unified()
|
||||||
.use(htmlToRehype)
|
.use(htmlToRehype)
|
||||||
.use(htmlToRehype)
|
.use(htmlToRehype)
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
export const controlValueSerializers = {};
|
|
||||||
|
|
||||||
export const registerControlValueSerializer = (fieldName, serializer) => {
|
|
||||||
controlValueSerializers[fieldName] = serializer;
|
|
||||||
};
|
|
@ -6,6 +6,7 @@ const _registry = {
|
|||||||
previewStyles: [],
|
previewStyles: [],
|
||||||
widgets: {},
|
widgets: {},
|
||||||
editorComponents: Map(),
|
editorComponents: Map(),
|
||||||
|
widgetValueSerializers: {},
|
||||||
};
|
};
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@ -36,5 +37,11 @@ export default {
|
|||||||
},
|
},
|
||||||
getEditorComponents() {
|
getEditorComponents() {
|
||||||
return _registry.editorComponents;
|
return _registry.editorComponents;
|
||||||
}
|
},
|
||||||
|
registerWidgetValueSerializer(widgetName, serializer) {
|
||||||
|
_registry.widgetValueSerializers[widgetName] = serializer;
|
||||||
|
},
|
||||||
|
getWidgetValueSerializer(widgetName) {
|
||||||
|
return _registry.widgetValueSerializers[widgetName];
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user