From 905e7ffc439cadf0ba3b74efd76d51006d6419c2 Mon Sep 17 00:00:00 2001 From: highfredo Date: Sun, 21 Nov 2021 13:43:02 +0100 Subject: [PATCH] Deepclone profile before passing it to the configuration component and fix uncaught error on modal dismiss --- .../profilesSettingsTab.component.ts | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/tabby-settings/src/components/profilesSettingsTab.component.ts b/tabby-settings/src/components/profilesSettingsTab.component.ts index 60cdf611..7a976e93 100644 --- a/tabby-settings/src/components/profilesSettingsTab.component.ts +++ b/tabby-settings/src/components/profilesSettingsTab.component.ts @@ -100,18 +100,19 @@ export class ProfilesSettingsTabComponent extends BaseComponent { if (!provider) { throw new Error('Cannot edit a profile without a provider') } - modal.componentInstance.profile = Object.assign({}, profile) + modal.componentInstance.profile = deepClone(profile) modal.componentInstance.profileProvider = provider - const result = await modal.result + try { + const result = await modal.result + // Fully replace the config + for (const k in profile) { + // eslint-disable-next-line @typescript-eslint/no-dynamic-delete + delete profile[k] + } + Object.assign(profile, result) - // Fully replace the config - for (const k in profile) { - // eslint-disable-next-line @typescript-eslint/no-dynamic-delete - delete profile[k] - } - Object.assign(profile, result) - - profile.type = provider.id + profile.type = provider.id + } catch (e) { } } async deleteProfile (profile: PartialProfile): Promise {