2023-10-02 19:41:05 +00:00
|
|
|
import { RenderModes } from "constants/WidgetConstants";
|
|
|
|
|
import { AnvilEditorWrapper } from "./editor/AnvilEditorWrapper";
|
|
|
|
|
import { AnvilViewerWrapper } from "./viewer/AnvilViewerWrapper";
|
|
|
|
|
import type { BaseWidgetProps } from "widgets/BaseWidgetHOC/withBaseWidgetHOC";
|
2023-10-19 20:27:40 +00:00
|
|
|
import type { LayoutSystem } from "layoutSystems/types";
|
|
|
|
|
import { AnvilCanvas } from "./canvas/AnvilCanvas";
|
2023-10-02 19:41:05 +00:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* getAnvilSystemPropsEnhancer
|
|
|
|
|
*
|
|
|
|
|
* utility function to enhance BaseWidgetProps with Anvil specific props
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
const getAnvilSystemPropsEnhancer = (props: BaseWidgetProps) => {
|
2023-10-19 20:27:40 +00:00
|
|
|
return props;
|
2023-10-02 19:41:05 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const getAnvilSystemWrapper = (renderMode: RenderModes) => {
|
|
|
|
|
if (renderMode === RenderModes.CANVAS) return AnvilEditorWrapper;
|
|
|
|
|
return AnvilViewerWrapper;
|
|
|
|
|
};
|
|
|
|
|
|
2023-10-19 20:27:40 +00:00
|
|
|
/**
|
|
|
|
|
* getAnvilCanvasWrapper
|
|
|
|
|
*
|
|
|
|
|
* utility function to return the anvil system canvas implementation.
|
|
|
|
|
*
|
|
|
|
|
* @returns current canvas component.
|
|
|
|
|
*/
|
|
|
|
|
const getAnvilCanvasWrapper = () => {
|
|
|
|
|
return AnvilCanvas;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* getAnvilCanvasPropsEnhancer
|
|
|
|
|
*
|
|
|
|
|
* utility function to return the anvil system wrapper.
|
|
|
|
|
* wrapper is the component that wraps around a widget to provide layout-ing ability and enable editing experience.
|
|
|
|
|
*
|
|
|
|
|
* @returns current render mode specific wrapper.
|
|
|
|
|
*/
|
|
|
|
|
const getAnvilCanvasPropsEnhancer = (props: BaseWidgetProps) => {
|
|
|
|
|
return props;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export function getAnvilLayoutSystem(renderMode: RenderModes): LayoutSystem {
|
2023-10-02 19:41:05 +00:00
|
|
|
return {
|
2023-10-19 20:27:40 +00:00
|
|
|
canvasSystem: {
|
|
|
|
|
Canvas: getAnvilCanvasWrapper(),
|
|
|
|
|
propertyEnhancer: getAnvilCanvasPropsEnhancer,
|
|
|
|
|
},
|
|
|
|
|
widgetSystem: {
|
|
|
|
|
WidgetWrapper: getAnvilSystemWrapper(renderMode),
|
|
|
|
|
propertyEnhancer: getAnvilSystemPropsEnhancer,
|
|
|
|
|
},
|
2023-10-02 19:41:05 +00:00
|
|
|
};
|
|
|
|
|
}
|