From 24bbe1f574ee6b0d6d0ebc8c29cbf014fc450584 Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Fri, 28 Jan 2022 01:07:56 +0100 Subject: feat: Save selected service to file MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sophie start off from the service that was selected when it was last open. Signed-off-by: Kristóf Marussy --- packages/main/src/stores/config/loadConfig.ts | 28 +++++++++++---------------- 1 file changed, 11 insertions(+), 17 deletions(-) (limited to 'packages/main/src/stores/config') diff --git a/packages/main/src/stores/config/loadConfig.ts b/packages/main/src/stores/config/loadConfig.ts index 770d675..55d15c8 100644 --- a/packages/main/src/stores/config/loadConfig.ts +++ b/packages/main/src/stores/config/loadConfig.ts @@ -106,22 +106,13 @@ export default function loadConfig( target: { readonly profiles: IMSTArray>; readonly profilesById: IMSTMap; - selectedService: Service | undefined; readonly services: IMSTArray>; readonly servicesById: IMSTMap; readonly settings: GlobalSettings; }, config: Config, ): void { - const { - profiles, - profilesById, - selectedService, - services, - servicesById, - settings, - } = target; - const { id: selectedServiceId } = selectedService ?? { id: undefined }; + const { profiles, profilesById, services, servicesById, settings } = target; const { profiles: profilesConfig, services: servicesConfig, @@ -134,13 +125,16 @@ export default function loadConfig( ); applySettings(profiles, profilesById, profilesToApply); applySettings(services, servicesById, servicesToApply); - applySnapshot(settings, settingsToApply); - let newSelectedService: Service | undefined; - if (selectedServiceId !== undefined) { - newSelectedService = servicesById.get(selectedServiceId); + const { selectedService } = settingsToApply; + // Be more robust against when a deleted service is selected. + if ( + typeof selectedService !== 'string' || + !servicesById.has(selectedService) + ) { + settingsToApply.selectedService = undefined; } - if (newSelectedService === undefined && services.length > 0) { - [newSelectedService] = services; + applySnapshot(settings, settingsToApply); + if (settings.selectedService === undefined && services.length > 0) { + [settings.selectedService] = services; } - target.selectedService = newSelectedService; } -- cgit v1.2.3-70-g09d2