diff --git a/app/common/renderer/actions/Inspector.js b/app/common/renderer/actions/Inspector.js index 64cd6b6c4..05b6a4095 100644 --- a/app/common/renderer/actions/Inspector.js +++ b/app/common/renderer/actions/Inspector.js @@ -19,6 +19,7 @@ import {showError} from './Session'; export const SET_SESSION_DETAILS = 'SET_SESSION_DETAILS'; export const SET_SOURCE_AND_SCREENSHOT = 'SET_SOURCE_AND_SCREENSHOT'; +export const STORE_SESSION_SETTINGS = 'STORE_SESSION_SETTINGS'; export const SESSION_DONE = 'SESSION_DONE'; export const SELECT_ELEMENT = 'SELECT_ELEMENT'; export const UNSELECT_ELEMENT = 'UNSELECT_ELEMENT'; @@ -368,6 +369,21 @@ export function setSessionDetails({driver, sessionDetails, mode, mjpegScreenshot }; } +export function storeSessionSettings(updatedSessionSettings = null) { + return async (dispatch, getState) => { + let sessionSettings = updatedSessionSettings; + if (sessionSettings === null) { + const action = applyClientMethod({ + methodName: 'getSettings', + skipRefresh: true, + ignoreResult: true, + }); + sessionSettings = await action(dispatch, getState); + } + dispatch({type: STORE_SESSION_SETTINGS, sessionSettings}); + }; +} + export function showLocatorTestModal() { return (dispatch) => { dispatch({type: SHOW_LOCATOR_TEST_MODAL}); diff --git a/app/common/renderer/components/Inspector/Commands.jsx b/app/common/renderer/components/Inspector/Commands.jsx index bd89c9fee..e4cb18271 100644 --- a/app/common/renderer/components/Inspector/Commands.jsx +++ b/app/common/renderer/components/Inspector/Commands.jsx @@ -25,6 +25,7 @@ const Commands = (props) => { setCommandArg, applyClientMethod, automationName, + storeSessionSettings, t, } = props; @@ -115,6 +116,10 @@ const Commands = (props) => { skipRefresh: !refresh, ignoreResult: false, }); + // if updating settings, store the updated values + if (commandName === 'updateSettings') { + storeSessionSettings(...copiedArgs); + } } cancelPendingCommand(); diff --git a/app/common/renderer/components/Inspector/Inspector.jsx b/app/common/renderer/components/Inspector/Inspector.jsx index bb5efd83f..ee4cd7696 100644 --- a/app/common/renderer/components/Inspector/Inspector.jsx +++ b/app/common/renderer/components/Inspector/Inspector.jsx @@ -175,7 +175,13 @@ const Inspector = (props) => { }; useEffect(() => { - const {applyClientMethod, getSavedActionFramework, runKeepAliveLoop, setSessionTime} = props; + const { + applyClientMethod, + getSavedActionFramework, + runKeepAliveLoop, + setSessionTime, + storeSessionSettings, + } = props; const curHeight = window.innerHeight; const curWidth = window.innerWidth; const needsResize = @@ -190,6 +196,7 @@ const Inspector = (props) => { } didInitialResize.current = true; applyClientMethod({methodName: 'getPageSource', ignoreResult: true}); + storeSessionSettings(); getSavedActionFramework(); runKeepAliveLoop(); setSessionTime(Date.now()); diff --git a/app/common/renderer/reducers/Inspector.js b/app/common/renderer/reducers/Inspector.js index e3fb96c40..bd646a779 100644 --- a/app/common/renderer/reducers/Inspector.js +++ b/app/common/renderer/reducers/Inspector.js @@ -75,6 +75,7 @@ import { SHOW_LOCATOR_TEST_MODAL, SHOW_SIRI_COMMAND_MODAL, START_RECORDING, + STORE_SESSION_SETTINGS, TOGGLE_REFRESHING_STATE, TOGGLE_SHOW_ATTRIBUTES, UNSELECT_CENTROID, @@ -103,6 +104,7 @@ const INITIAL_STATE = { recordedActions: [], actionFramework: DEFAULT_FRAMEWORK, sessionDetails: {}, + sessionSettings: {}, isGestureEditorVisible: false, isLocatorTestModalVisible: false, isSiriCommandModalVisible: false, @@ -317,6 +319,12 @@ export default function inspector(state = INITIAL_STATE, action) { }; } + case STORE_SESSION_SETTINGS: + return { + ...state, + sessionSettings: {...state.sessionSettings, ...action.sessionSettings}, + }; + case SHOW_LOCATOR_TEST_MODAL: return { ...state,