PromucFlow_constructor/app/client/src/normalizers/CanvasWidgetsNormalizer.tsx
2020-02-21 12:16:49 +00:00

28 lines
739 B
TypeScript

import { normalize, schema, denormalize } from "normalizr";
import { WidgetProps } from "widgets/BaseWidget";
import { ContainerWidgetProps } from "widgets/ContainerWidget";
export const widgetSchema = new schema.Entity(
"canvasWidgets",
{},
{ idAttribute: "widgetId" },
);
widgetSchema.define({ children: [widgetSchema] });
class CanvasWidgetsNormalizer {
static normalize(
dsl: Partial<ContainerWidgetProps<WidgetProps>>,
): { entities: any; result: any } {
return normalize(dsl, widgetSchema);
}
static denormalize(
pageWidgetId: string,
entities: any,
): ContainerWidgetProps<WidgetProps> {
return denormalize(pageWidgetId, widgetSchema, entities);
}
}
export default CanvasWidgetsNormalizer;