import { WidgetProps, WidgetCardProps } from "../widgets/BaseWidget"; import { RefObject } from "react"; export const ReduxActionTypes: { [key: string]: string } = { REPORT_ERROR: "REPORT_ERROR", FLUSH_ERRORS: "FLUSH_ERRORS", UPDATE_CANVAS: "UPDATE_CANVAS", FETCH_CANVAS: "FETCH_CANVAS", CLEAR_CANVAS: "CLEAR_CANVAS", FETCH_PAGE: "FETCH_PAGE", DROP_WIDGET_CANVAS: "DROP_WIDGET_CANVAS", REMOVE_WIDGET_CANVAS: "REMOVE_WIDGET_CANVAS", LOAD_WIDGET_PANE: "LOAD_WIDGET_PANE", ZOOM_IN_CANVAS: "ZOOM_IN_CANVAS", ZOOM_OUT_CANVAS: "ZOOM_OUT_CANVAS", UNDO_CANVAS_ACTION: "UNDO_CANVAS_ACTION", REDO_CANVAS_ACTION: "REDO_CANVAS_ACTION", LOAD_WIDGET_CONFIG: "LOAD_WIDGET_CONFIG", LOAD_PROPERTY_CONFIG: "LOAD_PROPERTY_CONFIG", PUBLISH: "PUBLISH", FETCH_WIDGET_CARDS: "FETCH_WIDGET_CARDS", FETCH_WIDGET_CARDS_SUCCESS: "FETCH_WIDGET_CARDS_SUCCESS", ADD_PAGE_WIDGET: "ADD_PAGE_WIDGET", REMOVE_PAGE_WIDGET: "REMOVE_PAGE_WIDGET", LOAD_API_RESPONSE: "LOAD_API_RESPONSE", LOAD_QUERY_RESPONSE: "LOAD_QUERY_RESPONSE", EXECUTE_ACTION: "EXECUTE_ACTION", LOAD_CANVAS_ACTIONS: "LOAD_CANVAS_ACTIONS", SAVE_PAGE_INIT: "SAVE_PAGE_INIT", SAVE_PAGE_SUCCESS: "SAVE_PAGE_SUCCESS", UPDATE_LAYOUT: "UPDATE_LAYOUT", WIDGET_ADD_CHILD: "WIDGET_ADD_CHILD", WIDGET_REMOVE_CHILD: "WIDGET_REMOVE_CHILD", WIDGET_MOVE: "WIDGET_MOVE", WIDGET_RESIZE: "WIDGET_RESIZE", WIDGET_DELETE: "WIDGET_DELETE", SHOW_PROPERTY_PANE: "SHOW_PROPERTY_PANE", UPDATE_WIDGET_PROPERTY: "UPDATE_WIDGET_PROPERTY", FETCH_PROPERTY_PANE_CONFIGS_INIT: "FETCH_PROPERTY_PANE_CONFIGS_INIT", FETCH_PROPERTY_PANE_CONFIGS_SUCCESS: "FETCH_PROPERTY_PANE_CONFIGS_SUCCESS", FETCH_CONFIGS_INIT: "FETCH_CONFIGS_INIT", ADD_WIDGET_REF: "ADD_WIDGET_REF", CREATE_ACTION: "CREATE_ACTION", FETCH_ACTIONS_INIT: "FETCH_ACTIONS_INIT", FETCH_ACTIONS_SUCCESS: "FETCH_ACTIONS_SUCCESS", FETCH_ACTION: "FETCH_ACTION", RUN_ACTION: "RUN_ACTION", RUN_ACTION_SUCCESS: "RUN_ACTION_SUCCESS", UPDATE_ACTION: "UPDATE_ACTION", DELETE_ACTION: "DELETE_ACTION", FETCH_RESOURCES_INIT: "FETCH_RESOURCES_INIT", FETCH_RESOURCES_SUCCESS: "FETCH_RESOURCES_SUCCESS", CREATE_RESOURCE_INIT: "CREATE_RESOURCE_INIT", CREATE_RESOURCE_SUCCESS: "CREATE_RESOURCE_SUCCESS", }; export type ReduxActionType = (typeof ReduxActionTypes)[keyof typeof ReduxActionTypes]; export const ReduxActionErrorTypes: { [key: string]: string } = { API_ERROR: "API_ERROR", WIDGET_DELETE_ERROR: "WIDGET_DELETE_ERROR", WIDGET_MOVE_ERROR: "WIDGET_MOVE_ERROR", WIDGET_RESIZE_ERROR: "WIDGET_RESIZE_ERROR", WIDGET_REMOVE_CHILD_ERROR: "WIDGET_REMOVE_CHILD_ERROR", WIDGET_ADD_CHILD_ERROR: "WIDGET_ADD_CHILD_ERROR", FETCH_PAGE_ERROR: "FETCH_PAGE_ERROR", SAVE_PAGE_ERROR: "SAVE_PAGE_ERROR", FETCH_WIDGET_CARDS_ERROR: "FETCH_WIDGET_CARDS_ERROR", WIDGET_OPERATION_ERROR: "WIDGET_OPERATION_ERROR", FETCH_PROPERTY_PANE_CONFIGS_ERROR: "FETCH_PROPERTY_PANE_CONFIGS_ERROR", FETCH_CONFIGS_ERROR: "FETCH_CONFIGS_ERROR", PROPERTY_PANE_ERROR: "PROPERTY_PANE_ERROR", FETCH_ACTIONS_ERROR: "FETCH_ACTIONS_ERROR", UPDATE_WIDGET_PROPERTY_ERROR: "UPDATE_WIDGET_PROPERTY_ERROR", FETCH_RESOURCES_ERROR: "FETCH_RESOURCES_ERROR", CREATE_RESOURCE_ERROR: "CREATE_RESOURCE_ERROR", }; export type ReduxActionErrorType = (typeof ReduxActionErrorTypes)[keyof typeof ReduxActionErrorTypes]; export interface ReduxAction { type: ReduxActionType | ReduxActionErrorType; payload: T; } export interface ReduxActionErrorPayload { message: string; source?: string; } export interface UpdateCanvasPayload { pageWidgetId: string; widgets: { [widgetId: string]: WidgetProps }; currentLayoutId: string; currentPageId: string; currentPageName: string; } export interface ShowPropertyPanePayload { widgetId: string; node: RefObject; toggle: boolean; } // export interface LoadAPIResponsePayload extends ExecuteActionResponse {} // export interface LoadQueryResponsePayload extends ExecuteActionResponse {} export interface LoadWidgetEditorPayload { widgets: WidgetProps[]; } export interface LoadWidgetSidebarPayload { cards: { [id: string]: WidgetCardProps[] }; } export type SavePagePayload = {}; export type SavePageErrorPayload = {}; export type SavePageSuccessPayload = {};