2022-08-04 05:40:44 +00:00
|
|
|
import { createImmerReducer } from "utils/ReducerUtils";
|
2022-04-14 04:36:20 +00:00
|
|
|
import {
|
|
|
|
|
ReduxAction,
|
|
|
|
|
ReduxActionTypes,
|
|
|
|
|
UpdateCanvasPayload,
|
|
|
|
|
} from "@appsmith/constants/ReduxActionConstants";
|
|
|
|
|
import { MAIN_CONTAINER_WIDGET_ID } from "constants/WidgetConstants";
|
|
|
|
|
import { UpdateCanvasLayoutPayload } from "actions/controlActions";
|
|
|
|
|
|
|
|
|
|
const initialState: MainCanvasReduxState = {
|
2022-05-26 04:52:55 +00:00
|
|
|
initialized: false,
|
2022-04-14 04:36:20 +00:00
|
|
|
width: 0,
|
|
|
|
|
height: 0,
|
2023-01-09 05:24:41 +00:00
|
|
|
scale: 1,
|
2022-04-14 04:36:20 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
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;
|
2023-01-09 05:24:41 +00:00
|
|
|
state.scale = action.payload.scale;
|
2022-05-26 04:52:55 +00:00
|
|
|
state.initialized = true;
|
2022-04-14 04:36:20 +00:00
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
export interface MainCanvasReduxState {
|
2023-01-09 05:24:41 +00:00
|
|
|
initialized: boolean;
|
2022-04-14 04:36:20 +00:00
|
|
|
width: number;
|
|
|
|
|
height: number;
|
2023-01-09 05:24:41 +00:00
|
|
|
scale: number;
|
2022-04-14 04:36:20 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export default mainCanvasReducer;
|