PromucFlow_constructor/app/client/src/reducers/uiReducers/mainCanvasReducer.ts

42 lines
1.2 KiB
TypeScript
Raw Normal View History

import { createImmerReducer } from "utils/AppsmithUtils";
import {
ReduxAction,
ReduxActionTypes,
UpdateCanvasPayload,
} from "@appsmith/constants/ReduxActionConstants";
import { MAIN_CONTAINER_WIDGET_ID } from "constants/WidgetConstants";
import { UpdateCanvasLayoutPayload } from "actions/controlActions";
const initialState: MainCanvasReduxState = {
width: 0,
height: 0,
};
const mainCanvasReducer = createImmerReducer(initialState, {
[ReduxActionTypes.INIT_CANVAS_LAYOUT]: (
state: MainCanvasReduxState,
action: ReduxAction<UpdateCanvasPayload>,
) => {
const mainCanvas =
action.payload.widgets &&
action.payload.widgets[MAIN_CONTAINER_WIDGET_ID];
state.width = mainCanvas?.rightColumn || state.width;
state.height = mainCanvas?.minHeight || state.height;
},
[ReduxActionTypes.UPDATE_CANVAS_LAYOUT]: (
state: MainCanvasReduxState,
action: ReduxAction<UpdateCanvasLayoutPayload>,
) => {
state.width = action.payload.width || state.width;
state.height = action.payload.height || state.height;
},
});
export interface MainCanvasReduxState {
width: number;
height: number;
}
export default mainCanvasReducer;