PromucFlow_constructor/app/client/src/utils/WidgetRegistry.tsx

67 lines
2.1 KiB
TypeScript
Raw Normal View History

2019-03-13 15:05:24 +00:00
import BaseWidget, { IWidgetProps } from "../widgets/BaseWidget";
import ContainerWidget, {
IContainerWidgetProps
2019-03-13 15:05:24 +00:00
} from "../widgets/ContainerWidget";
import TextWidget, { ITextWidgetProps } from "../widgets/TextWidget";
import InputGroupWidget, {
IInputGroupWidgetProps
} from "../widgets/InputGroupWidget";
2019-03-13 15:55:53 +00:00
import CalloutWidget, { ICalloutWidgetProps } from "../widgets/CalloutWidget";
import IconWidget, { IIconWidgetProps } from "../widgets/IconWidget";
2019-03-15 12:53:45 +00:00
import SpinnerWidget, { ISpinnerWidgetProps } from "../widgets/SpinnerWidget";
2019-03-13 15:05:24 +00:00
import WidgetFactory from "./WidgetFactory";
import React from "react";
2019-03-18 13:50:24 +00:00
import ButtonWidget, {
IButtonWidgetProps
} from "../widgets/ButtonWidget"
2019-02-10 13:21:19 +00:00
class WidgetBuilderRegistry {
static registerWidgetBuilders() {
WidgetFactory.registerWidgetBuilder("CONTAINER_WIDGET", {
buildWidget(
widgetData: IContainerWidgetProps<IWidgetProps>
): JSX.Element {
2019-03-13 15:05:24 +00:00
return <ContainerWidget {...widgetData} />;
2019-02-10 13:21:19 +00:00
}
2019-03-13 15:05:24 +00:00
});
WidgetFactory.registerWidgetBuilder("TEXT_WIDGET", {
2019-03-13 15:05:24 +00:00
buildWidget(widgetData: ITextWidgetProps): JSX.Element {
return <TextWidget {...widgetData} />;
}
2019-03-13 15:05:24 +00:00
});
2019-03-18 13:50:24 +00:00
WidgetFactory.registerWidgetBuilder("BUTTON_WIDGET", {
buildWidget(widgetData: IButtonWidgetProps): JSX.Element {
return <ButtonWidget {...widgetData} />;
}
});
2019-03-13 15:55:53 +00:00
WidgetFactory.registerWidgetBuilder("CALLOUT_WIDGET", {
buildWidget(widgetData: ICalloutWidgetProps): JSX.Element {
return <CalloutWidget {...widgetData} />;
}
});
WidgetFactory.registerWidgetBuilder("ICON_WIDGET", {
buildWidget(widgetData: IIconWidgetProps): JSX.Element {
return <IconWidget {...widgetData} />;
}
});
2019-03-15 12:53:45 +00:00
WidgetFactory.registerWidgetBuilder("SPINNER_WIDGET", {
buildWidget(widgetData: ISpinnerWidgetProps): JSX.Element {
return <SpinnerWidget {...widgetData} />;
}
});
WidgetFactory.registerWidgetBuilder("INPUT_GROUP_WIDGET", {
buildWidget(widgetData: IInputGroupWidgetProps): JSX.Element {
return <InputGroupWidget {...widgetData} />;
2019-03-18 13:50:24 +00:00
}
});
}
2019-02-10 13:21:19 +00:00
}
2019-03-13 15:05:24 +00:00
export default WidgetBuilderRegistry;