From 0db1dab9aaa178460dd8025e913f560377efbd18 Mon Sep 17 00:00:00 2001 From: olzzon Date: Tue, 15 Feb 2022 10:34:05 +0100 Subject: [PATCH] feat: better restart handling after updating settings --- client/components/Settings.tsx | 12 +++++++++--- server/MainThreadHandler.ts | 4 ++++ 2 files changed, 13 insertions(+), 3 deletions(-) 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)