2019-09-16 11:38:37 +00:00
|
|
|
import React from "react";
|
2019-09-09 10:30:22 +00:00
|
|
|
import styled from "styled-components";
|
|
|
|
|
import WidgetFactory from "../../utils/WidgetFactory";
|
|
|
|
|
import { WidgetTypes } from "../../constants/WidgetConstants";
|
|
|
|
|
import { useDrop } from "react-dnd";
|
|
|
|
|
import { ContainerWidgetProps } from "../../widgets/ContainerWidget";
|
2019-08-29 11:22:09 +00:00
|
|
|
|
2019-09-16 08:08:03 +00:00
|
|
|
const ArtBoard = styled.div`
|
2019-08-29 11:22:09 +00:00
|
|
|
width: 100%;
|
|
|
|
|
height: 100%;
|
2019-09-09 10:30:22 +00:00
|
|
|
position: relative;
|
2019-08-29 11:22:09 +00:00
|
|
|
overflow: auto;
|
|
|
|
|
`;
|
2019-03-21 17:42:23 +00:00
|
|
|
|
2019-08-26 12:41:21 +00:00
|
|
|
interface CanvasProps {
|
2019-08-29 11:22:09 +00:00
|
|
|
pageWidget: ContainerWidgetProps<any>;
|
|
|
|
|
addWidget: Function;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const Canvas = (props: CanvasProps) => {
|
2019-09-02 10:58:11 +00:00
|
|
|
const [, drop] = useDrop({
|
2019-08-26 12:41:21 +00:00
|
|
|
accept: Object.values(WidgetTypes),
|
2019-09-09 10:30:22 +00:00
|
|
|
});
|
2019-08-29 11:22:09 +00:00
|
|
|
|
2019-08-26 12:41:21 +00:00
|
|
|
return (
|
2019-08-29 11:22:09 +00:00
|
|
|
<React.Fragment>
|
2019-09-16 08:08:03 +00:00
|
|
|
<ArtBoard ref={drop}>
|
2019-09-09 10:30:22 +00:00
|
|
|
{props.pageWidget && WidgetFactory.createWidget(props.pageWidget)}
|
|
|
|
|
</ArtBoard>
|
2019-08-29 11:22:09 +00:00
|
|
|
</React.Fragment>
|
2019-09-09 10:30:22 +00:00
|
|
|
);
|
|
|
|
|
};
|
2019-02-10 13:06:05 +00:00
|
|
|
|
2019-09-09 10:30:22 +00:00
|
|
|
export default Canvas;
|