import React, { CSSProperties } from "react"; import { WidgetProps } from "widgets/BaseWidget"; import ContainerWidget, { ContainerWidgetProps } from "widgets/ContainerWidget"; import { WidgetTypes, GridDefaults } from "constants/WidgetConstants"; import DropTargetComponent from "components/editorComponents/DropTargetComponent"; import { getCanvasSnapRows } from "utils/WidgetPropsUtils"; import { getCanvasClassName } from "utils/generators"; import * as Sentry from "@sentry/react"; class CanvasWidget extends ContainerWidget { static getPropertyPaneConfig() { return []; } getWidgetType = () => { return WidgetTypes.CANVAS_WIDGET; }; getCanvasProps(): ContainerWidgetProps { return { ...this.props, parentRowSpace: 1, parentColumnSpace: 1, topRow: 0, leftColumn: 0, containerStyle: "none", }; } renderAsDropTarget() { const canvasProps = this.getCanvasProps(); return ( {this.renderAsContainerComponent(canvasProps)} ); } getPageView() { const snapRows = getCanvasSnapRows( this.props.bottomRow, this.props.canExtend, ); const height = snapRows * GridDefaults.DEFAULT_GRID_ROW_HEIGHT; const style: CSSProperties = { width: "100%", height: `${height}px`, background: "none", position: "relative", }; // This div is the DropTargetComponent alternative for the page view // DropTargetComponent and this div are responsible for the canvas height return (
{this.renderAsContainerComponent(this.getCanvasProps())}
); } getCanvasView() { return this.renderAsDropTarget(); } } export default CanvasWidget; export const ProfiledCanvasWidget = Sentry.withProfiler(CanvasWidget);