PromucFlow_constructor/app/client/src/reducers/uiReducers/modalActionReducer.ts
Valera Melnikov 9eac55a380
chore: add consistent-type-definitions rule (#27907)
## Description
Add consistent-type-definitions rule
2023-10-11 10:35:24 +03:00

37 lines
988 B
TypeScript

import { createReducer } from "utils/ReducerUtils";
import type { ReduxAction } from "@appsmith/constants/ReduxActionConstants";
import { ReduxActionTypes } from "@appsmith/constants/ReduxActionConstants";
const initialState: ModalActionReduxState = {
modals: [],
};
const modalActionReducer = createReducer(initialState, {
[ReduxActionTypes.SHOW_ACTION_MODAL]: (
state: ModalActionReduxState,
action: ReduxAction<ModalInfo>,
) => {
const filteredState = state.modals.filter(
(modalInfo) => modalInfo.name !== action.payload.name,
);
return { ...state, modals: [...filteredState, action.payload] };
},
});
// different types of operations that involve using modals
export enum ModalType {
RUN_ACTION = "RUN_ACTION",
}
// some meta-data about the Modal.
export interface ModalInfo {
name: string;
modalOpen: boolean;
modalType: ModalType;
}
export interface ModalActionReduxState {
modals: ModalInfo[];
}
export default modalActionReducer;