From a6163b0b5d26c8f274127aef1a913eec5064bcc9 Mon Sep 17 00:00:00 2001 From: "Scott E. Graves" Date: Sun, 6 Oct 2019 19:23:09 -0500 Subject: [PATCH] Save state on remove --- src/App.js | 8 +-- src/redux/actions/common_actions.js | 92 ++++++++++++++--------------- src/redux/actions/mount_actions.js | 6 +- 3 files changed, 55 insertions(+), 51 deletions(-) diff --git a/src/App.js b/src/App.js index baa6a0e..1a03dcd 100644 --- a/src/App.js +++ b/src/App.js @@ -126,15 +126,15 @@ class App extends IPCContainer { !this.props.DismissDependencies && this.props.AllowMount; - const confirmDisplay = this.createModalConditionally(this.props.DisplayConfirmYesNo, ); - const infoDisplay = this.createModalConditionally(this.props.DisplayInfo, , true); - const rebootDisplay = this.createModalConditionally(this.props.RebootRequired, ); const configDisplay = this.createModalConditionally(showConfig, ); + const confirmDisplay = this.createModalConditionally(this.props.DisplayConfirmYesNo, ); const dependencyDisplay = this.createModalConditionally(showDependencies, ); const downloadDisplay = this.createModalConditionally(this.props.DownloadActive, ); const errorDisplay = this.createModalConditionally(this.props.DisplayError, , true); - const upgradeDisplay = this.createModalConditionally(showUpgrade, ); + const infoDisplay = this.createModalConditionally(this.props.DisplayInfo, , true); + const rebootDisplay = this.createModalConditionally(this.props.RebootRequired, ); const selectAppPlatformDisplay = this.createModalConditionally(this.props.DisplaySelectAppPlatform, ); + const upgradeDisplay = this.createModalConditionally(showUpgrade, ); let mainContent = []; if (this.props.DisplaySelectAppPlatform || !this.props.AppReady) { diff --git a/src/redux/actions/common_actions.js b/src/redux/actions/common_actions.js index fa94d05..f1219b8 100644 --- a/src/redux/actions/common_actions.js +++ b/src/redux/actions/common_actions.js @@ -13,25 +13,6 @@ export const confirmYesNo = title => { }; }; -export const hideConfirmYesNo = confirmed => { - return dispatch => { - dispatch(handleConfirmYesNo(false, confirmed)); - }; -}; - -const handleConfirmYesNo = (show, titleOrConfirmed, resolve) => { - return dispatch => { - if (show) { - yesNoResolvers.push(resolve); - dispatch(displayConfirmYesNo(show, titleOrConfirmed)) - } else { - yesNoResolvers[0](titleOrConfirmed); - yesNoResolvers.splice(0, 1); - dispatch(displayConfirmYesNo(false)) - } - }; -}; - export const DISPLAY_CONFIRM_YES_NO = 'common/displayConfirmYesNo'; const displayConfirmYesNo = (show, title) => { return { @@ -53,6 +34,25 @@ export const displaySelectAppPlatform = display => { }; }; +export const hideConfirmYesNo = confirmed => { + return dispatch => { + dispatch(handleConfirmYesNo(false, confirmed)); + }; +}; + +const handleConfirmYesNo = (show, titleOrConfirmed, resolve) => { + return dispatch => { + if (show) { + yesNoResolvers.push(resolve); + dispatch(displayConfirmYesNo(show, titleOrConfirmed)); + } else { + yesNoResolvers[0](titleOrConfirmed); + yesNoResolvers.splice(0, 1); + dispatch(displayConfirmYesNo(false)); + } + }; +}; + export const notifyRebootRequired = createAction('common/notifyRebootRequired'); export const rebootSystem = () => { @@ -64,6 +64,33 @@ export const rebootSystem = () => { } }; +export const saveState = () => { + return (dispatch, getState) => { + const state = getState(); + if (state.common.AppReady) { + let currentState = { + Release: state.relver.Release, + RemoteMounts: state.mounts.RemoteMounts, + Version: state.relver.Version, + }; + + const providerList = [ + ...Constants.PROVIDER_LIST, + ...state.mounts.RemoteMounts, + ]; + for (const provider of providerList) { + currentState[provider] = state.mounts.ProviderState[provider]; + } + + if (ipcRenderer) { + ipcRenderer.send(Constants.IPC_Save_State, { + State: currentState + }); + } + } + }; +}; + export const setAllowMount = createAction('common/setAllowMount'); export const setApplicationReady = createAction('common/setApplicationReady'); @@ -99,31 +126,4 @@ export const shutdownApplication = () => { ipcRenderer.send(Constants.IPC_Shutdown); } }; -}; - -export const saveState = () => { - return (dispatch, getState) => { - const state = getState(); - if (state.common.AppReady) { - let currentState = { - Release: state.relver.Release, - RemoteMounts: state.mounts.RemoteMounts, - Version: state.relver.Version, - }; - - const providerList = [ - ...Constants.PROVIDER_LIST, - ...state.mounts.RemoteMounts, - ]; - for (const provider of providerList) { - currentState[provider] = state.mounts.ProviderState[provider]; - } - - if (ipcRenderer) { - ipcRenderer.send(Constants.IPC_Save_State, { - State: currentState - }); - } - } - }; }; \ No newline at end of file diff --git a/src/redux/actions/mount_actions.js b/src/redux/actions/mount_actions.js index 0219cc2..90b48e6 100644 --- a/src/redux/actions/mount_actions.js +++ b/src/redux/actions/mount_actions.js @@ -1,7 +1,10 @@ import * as Constants from '../../constants'; import {createAction} from 'redux-starter-kit'; import {getIPCRenderer} from '../../utils'; -import {confirmYesNo, displayConfirmYesNo} from './common_actions'; +import { + confirmYesNo, + saveState +} from './common_actions'; export const DISPLAY_CONFIGURATION = 'mounts/displayConfiguration'; export const displayConfiguration = (provider, remote) => { @@ -31,6 +34,7 @@ const removeRemoteMount2 = provider => { ipcRenderer.once(Constants.IPC_Remove_Remote_Mount_Reply, (_, arg) => { if (arg.data.Success) { dispatch(removeRemoteMount3(provider)); + dispatch(saveState()); } }); ipcRenderer.send(Constants.IPC_Remove_Remote_Mount, provider.substr(6));