diff --git a/client/components/Settings.tsx b/client/components/Settings.tsx index ed965f31..ec9113b5 100644 --- a/client/components/Settings.tsx +++ b/client/components/Settings.tsx @@ -10,7 +10,7 @@ import { ISettings } from '../../server/reducers/settingsReducer' import { Store } from 'redux' import { ChangeEvent } from 'react' import { SOCKET_SAVE_SETTINGS } from '../../server/constants/SOCKET_IO_DISPATCHERS' -import { storeShowSettings } from '../../server/reducers/settingsActions' +import { storeSetServerOnline, storeShowSettings } from '../../server/reducers/settingsActions' //Set style for Select dropdown component: const selectorColorStyles = { @@ -169,7 +169,13 @@ class Settings extends React.PureComponent { let settingsCopy = Object.assign({}, this.state.settings) settingsCopy.showSettings = false window.socketIoClient.emit(SOCKET_SAVE_SETTINGS, settingsCopy) - location.reload() + this.props.dispatch(storeShowSettings()) + window.alert( + 'restarting Sisyfos' + ) + setTimeout(()=> { + location.reload() + }, 2000) } handleCancel = () => { @@ -553,7 +559,7 @@ class Settings extends React.PureComponent { this.handleSave() }} > - SAVE SETTINGS + SAVE & RESTART ) diff --git a/server/MainThreadHandler.ts b/server/MainThreadHandler.ts index 1d96c399..063eb286 100644 --- a/server/MainThreadHandler.ts +++ b/server/MainThreadHandler.ts @@ -213,6 +213,10 @@ export class MainThreadHandlers { logger.data(payload).info('Save settings:') saveSettings(payload) this.updateFullClientStore() + /** Delay restart to ensure the async saveSettings is done before restarting*/ + setTimeout(() => { + process.exit(0) + }, 1000) }) .on(IO.SOCKET_RESTART_SERVER, () => { process.exit(0)