import { createReducer } from "../../utils/AppsmithUtils"; import { ReduxActionTypes, ReduxAction, } from "../../constants/ReduxActionConstants"; import { WidgetProps } from "../../widgets/BaseWidget"; import WidgetConfigResponse from "../../mockResponses/WidgetConfigResponse"; import { ButtonWidgetProps } from "../../widgets/ButtonWidget"; import { TextWidgetProps } from "../../widgets/TextWidget"; import { ContainerWidgetProps } from "../../widgets/ContainerWidget"; import { ImageWidgetProps } from "../../widgets/ImageWidget"; import { InputWidgetProps } from "../../widgets/InputWidget"; import { SwitchWidgetProps } from "../../widgets/SwitchWidget"; import { SpinnerWidgetProps } from "../../widgets/SpinnerWidget"; import { DatePickerWidgetProps } from "../../widgets/DatePickerWidget"; import { TableWidgetProps } from "../../widgets/TableWidget"; import { DropdownWidgetProps } from "../../widgets/DropdownWidget"; import { CheckboxWidgetProps } from "../../widgets/CheckboxWidget"; import { RadioGroupWidgetProps } from "../../widgets/RadioGroupWidget"; import { AlertWidgetProps } from "../../widgets/AlertWidget"; const initialState: WidgetConfigReducerState = WidgetConfigResponse; export interface WidgetConfigProps { rows: number; columns: number; } export interface WidgetConfigReducerState { config: { BUTTON_WIDGET: Partial & WidgetConfigProps; TEXT_WIDGET: Partial & WidgetConfigProps; IMAGE_WIDGET: Partial & WidgetConfigProps; INPUT_WIDGET: Partial & WidgetConfigProps; SWITCH_WIDGET: Partial & WidgetConfigProps; CONTAINER_WIDGET: Partial> & WidgetConfigProps; SPINNER_WIDGET: Partial & WidgetConfigProps; DATE_PICKER_WIDGET: Partial & WidgetConfigProps; TABLE_WIDGET: Partial & WidgetConfigProps; DROP_DOWN_WIDGET: Partial & WidgetConfigProps; CHECKBOX_WIDGET: Partial & WidgetConfigProps; RADIO_GROUP_WIDGET: Partial & WidgetConfigProps; ALERT_WIDGET: Partial & WidgetConfigProps; }; configVersion: number; } const widgetConfigReducer = createReducer(initialState, { [ReduxActionTypes.LOAD_WIDGET_CONFIG]: ( state: WidgetConfigReducerState, action: ReduxAction, ) => { return { ...action.payload }; }, }); export default widgetConfigReducer;