diff --git a/shesha-reactjs/src/providers/formDesigner/contexts.tsx b/shesha-reactjs/src/providers/formDesigner/contexts.tsx index 5f385e26f..dd73129c5 100644 --- a/shesha-reactjs/src/providers/formDesigner/contexts.tsx +++ b/shesha-reactjs/src/providers/formDesigner/contexts.tsx @@ -32,6 +32,7 @@ export interface IFormDesignerStateContext { dataSources: IDataSource[]; isDebug: boolean; + isPreview: boolean; readOnly: boolean; formMode: FormMode; @@ -106,6 +107,7 @@ export interface IFormDesignerActionsContext { setValidationErrors: (payload: IFormValidationErrors) => void; setDebugMode: (isDebug: boolean) => void; + setPreviewMode: (isPreview: boolean) => void; updateFormSettings: (settings: IFormSettings) => void; @@ -130,6 +132,7 @@ export const FORM_DESIGNER_CONTEXT_INITIAL_STATE: IFormDesignerStateContext = { hasDragged: false, isDragging: false, isDebug: false, + isPreview: false, formSettings: DEFAULT_FORM_SETTINGS, formFlatMarkup: { allComponents: {}, diff --git a/shesha-reactjs/src/providers/formDesigner/index.tsx b/shesha-reactjs/src/providers/formDesigner/index.tsx index cfa30bb5f..37cb51dcc 100644 --- a/shesha-reactjs/src/providers/formDesigner/index.tsx +++ b/shesha-reactjs/src/providers/formDesigner/index.tsx @@ -188,6 +188,10 @@ const FormDesignerProvider: FC> = dispatch(setDebugModeAction(isDebug)); }, [dispatch]); + const setPreviewMode = useCallback((isPreview: boolean) => { + dispatch(setPreviewModeAction(isPreview)); + }, [dispatch]); + const startDraggingNewItem = useCallback(() => { dispatch(startDraggingNewItemAction()); }, [dispatch]); @@ -258,6 +262,7 @@ const FormDesignerProvider: FC> = duplicateComponent, updateComponent, setDebugMode, + setPreviewMode, startDraggingNewItem, endDraggingNewItem, startDragging, @@ -298,7 +303,8 @@ const FormDesignerProvider: FC> = addDataSource, removeDataSource, setActiveDataSource, - setReadOnly + setReadOnly, + setPreviewMode, /* NEW_ACTION_GOES_HERE */ ]); diff --git a/shesha-reactjs/src/providers/formDesigner/reducer.ts b/shesha-reactjs/src/providers/formDesigner/reducer.ts index ea403e274..317dfdb5b 100644 --- a/shesha-reactjs/src/providers/formDesigner/reducer.ts +++ b/shesha-reactjs/src/providers/formDesigner/reducer.ts @@ -397,6 +397,14 @@ const reducer = handleActions( isDebug: payload, }; }, + [FormActionEnums.SetPreviewMode]: (state: IFormDesignerStateContext, action: ReduxActions.Action) => { + const { payload } = action; + + return { + ...state, + isPreview: payload, + }; + }, [FormActionEnums.StartDraggingNewItem]: (state: IFormDesignerStateContext) => { return {