* Implemented code splitting of some files for SAML integration * Implemented code splitting of some more files for SAML integration * updated redirect url component * fixed an import statement * fixed a unit test * updated restart banner tooltip logic * updated an import statement
53 lines
1.3 KiB
TypeScript
53 lines
1.3 KiB
TypeScript
import { createImmerReducer } from "utils/AppsmithUtils";
|
|
import {
|
|
ReduxActionTypes,
|
|
ReduxAction,
|
|
} from "@appsmith/constants/ReduxActionConstants";
|
|
import { WidgetProps } from "widgets/BaseWidget";
|
|
|
|
const initialState: WidgetConfigReducerState = { config: {} };
|
|
|
|
export type WidgetBlueprint = {
|
|
view?: Array<{
|
|
type: string;
|
|
size?: { rows: number; cols: number };
|
|
position: { top?: number; left?: number };
|
|
props: Record<string, any>;
|
|
}>;
|
|
operations?: any;
|
|
};
|
|
|
|
export interface WidgetConfigProps {
|
|
rows: number;
|
|
columns: number;
|
|
blueprint?: WidgetBlueprint;
|
|
widgetName: string;
|
|
enhancements?: Record<string, unknown>; // TODO(abhinav): SPECIFY TYPES
|
|
}
|
|
|
|
export interface WidgetConfig
|
|
extends Partial<WidgetProps>,
|
|
Omit<WidgetConfigProps, "widgetName"> {
|
|
type: string;
|
|
hideCard: boolean;
|
|
displayName: string;
|
|
key: string;
|
|
isCanvas?: boolean;
|
|
needsMeta?: boolean;
|
|
}
|
|
|
|
export interface WidgetConfigReducerState {
|
|
config: Record<string, WidgetConfig>;
|
|
}
|
|
|
|
const widgetConfigReducer = createImmerReducer(initialState, {
|
|
[ReduxActionTypes.ADD_WIDGET_CONFIG]: (
|
|
state: WidgetConfigReducerState,
|
|
action: ReduxAction<WidgetConfig>,
|
|
) => {
|
|
state.config[action.payload.type] = action.payload;
|
|
},
|
|
});
|
|
|
|
export default widgetConfigReducer;
|