Skip to content

Commit

Permalink
ref(settings): avoid useless object assign & deleting profile fields …
Browse files Browse the repository at this point in the history
…one by one
  • Loading branch information
Clem-Fern committed Sep 4, 2023
1 parent 0d0bde8 commit e4169a5
Showing 1 changed file with 13 additions and 22 deletions.
35 changes: 13 additions & 22 deletions tabby-settings/src/components/profilesSettingsTab.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -70,25 +70,24 @@ export class ProfilesSettingsTabComponent extends BaseComponent {
return
}
}
const profile: PartialProfile<Profile> = deepClone(base)
delete profile.id
const baseProfile: PartialProfile<Profile> = deepClone(base)
delete baseProfile.id
if (base.isTemplate) {
profile.name = ''
baseProfile.name = ''
} else if (!base.isBuiltin) {
profile.name = this.translate.instant('{name} copy', base)
baseProfile.name = this.translate.instant('{name} copy', base)
}
profile.isBuiltin = false
profile.isTemplate = false
const result = await this.showProfileEditModal(profile)
baseProfile.isBuiltin = false
baseProfile.isTemplate = false
const result = await this.showProfileEditModal(baseProfile)
if (!result) {
return
}
Object.assign(profile, result)
if (!profile.name) {
const cfgProxy = this.profilesService.getConfigProxyForProfile(profile)
profile.name = this.profilesService.providerForProfile(profile)?.getSuggestedName(cfgProxy) ?? this.translate.instant('{name} copy', base)
if (!result.name) {
const cfgProxy = this.profilesService.getConfigProxyForProfile(result)
result.name = this.profilesService.providerForProfile(result)?.getSuggestedName(cfgProxy) ?? this.translate.instant('{name} copy', base)
}
await this.profilesService.newProfile(profile)
await this.profilesService.newProfile(result)
await this.config.save()
}

Expand All @@ -97,8 +96,7 @@ export class ProfilesSettingsTabComponent extends BaseComponent {
if (!result) {
return
}
Object.assign(profile, result)
await this.profilesService.writeProfile(profile)
await this.profilesService.writeProfile(result)
await this.config.save()
}

Expand All @@ -119,12 +117,6 @@ export class ProfilesSettingsTabComponent extends BaseComponent {
return null
}

// Fully replace the config
for (const k in profile) {
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
delete profile[k]
}

result.type = provider.id
return result
}
Expand Down Expand Up @@ -162,8 +154,7 @@ export class ProfilesSettingsTabComponent extends BaseComponent {
if (!result) {
return
}
Object.assign(group, result)
await this.profilesService.writeProfileGroup(ProfilesSettingsTabComponent.collapsableIntoPartialProfileGroup(group))
await this.profilesService.writeProfileGroup(ProfilesSettingsTabComponent.collapsableIntoPartialProfileGroup(result))
await this.config.save()
}

Expand Down

0 comments on commit e4169a5

Please sign in to comment.