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

53 lines
1.3 KiB
TypeScript
Raw Normal View History

import React, { Component } from "react"
import { connect } from "react-redux"
import { AppState } from "../../reducers"
import WidgetFactory from "../../utils/WidgetFactory"
2019-04-01 07:08:00 +00:00
import CanvasWidgetsNormalizer, {
widgetSchema
} from "../../normalizers/CanvasWidgetsNormalizer"
import { IContainerWidgetProps } from "../../widgets/ContainerWidget"
import { fetchPage } from "../../actions/pageActions"
import { RenderModes } from "../../constants/WidgetConstants"
import DraggableWidget from "../../widgets/DraggableWidget";
2019-03-21 17:42:23 +00:00
2019-04-01 07:08:00 +00:00
class Canvas extends Component<{
pageWidget: IContainerWidgetProps<any>
fetchPage: Function
}> {
2019-03-21 17:42:23 +00:00
componentDidMount() {
this.props.fetchPage("123")
2019-03-21 17:42:23 +00:00
}
render() {
2019-03-21 17:42:23 +00:00
const pageWidget = this.props.pageWidget
2019-03-18 15:45:53 +00:00
return (
<div>
2019-04-01 07:08:00 +00:00
{pageWidget ? WidgetFactory.createWidget(pageWidget) : undefined}
2019-03-18 15:45:53 +00:00
</div>
)
}
}
const mapStateToProps = (state: AppState, props: any) => {
2019-04-01 07:08:00 +00:00
const pageWidget = CanvasWidgetsNormalizer.denormalize(
state.ui.canvas.pageWidgetId,
state.entities
)
return {
2019-03-21 17:42:23 +00:00
pageWidget: pageWidget
}
}
const mapDispatchToProps = (dispatch: any) => {
2019-03-21 17:42:23 +00:00
return {
fetchPage: (pageId: string) => {
return dispatch(fetchPage(pageId, RenderModes.CANVAS))
}
2019-03-21 17:42:23 +00:00
}
}
export default connect(
mapStateToProps,
mapDispatchToProps
)(Canvas)