PromucFlow_constructor/app/client/src/pages/Editor/Canvas.tsx

30 lines
841 B
TypeScript
Raw Normal View History

2019-08-26 12:41:21 +00:00
import React, { Props } from "react"
import WidgetFactory from "../../utils/WidgetFactory"
2019-08-26 12:41:21 +00:00
import { WidgetTypes } from "../../constants/WidgetConstants"
import { DraggableWidget } from "../../widgets/BaseWidget"
import { useDrop } from 'react-dnd'
2019-04-01 07:08:00 +00:00
import { IContainerWidgetProps } from "../../widgets/ContainerWidget"
2019-03-21 17:42:23 +00:00
2019-08-26 12:41:21 +00:00
interface CanvasProps {
2019-04-01 07:08:00 +00:00
pageWidget: IContainerWidgetProps<any>
2019-08-26 12:41:21 +00:00
addWidget: Function
removeWidget: Function
}
2019-08-26 12:41:21 +00:00
const Canvas : React.SFC<CanvasProps> = (props) => {
const [, drop] = useDrop({
accept: Object.values(WidgetTypes),
drop(item: DraggableWidget, monitor) {
console.log("dropped")
props.addWidget(item.type);
return undefined
},
})
return (
<div ref={drop}>
{props.pageWidget && WidgetFactory.createWidget(props.pageWidget)}
</div>
2019-04-01 07:08:00 +00:00
)
}
2019-08-26 12:41:21 +00:00
export default Canvas