From f39b4c6dbeb634a5b74292d81705315eb7a08688 Mon Sep 17 00:00:00 2001 From: Eugene Pankov Date: Sat, 10 Jul 2021 14:47:41 +0200 Subject: [PATCH] Update buttonProvider.ts --- tabby-core/src/buttonProvider.ts | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/tabby-core/src/buttonProvider.ts b/tabby-core/src/buttonProvider.ts index 1c5a4752..7805b19a 100644 --- a/tabby-core/src/buttonProvider.ts +++ b/tabby-core/src/buttonProvider.ts @@ -35,21 +35,21 @@ export class ButtonProvider extends ToolbarButtonProvider { async activate () { const recentProfiles: Profile[] = this.config.store.recentProfiles - const getProfileOptions = (profile): SelectorOption => { - const result: SelectorOption = this.profilesServices.selectorOptionForProfile(profile) - if (recentProfiles.includes(profile)) { - result.icon = 'fas fa-history' - } - result.callback = () => this.launchProfile(profile) - return result - } - - let options = recentProfiles.map(getProfileOptions) + let options: SelectorOption[] = recentProfiles.map(p => ({ + ...this.profilesServices.selectorOptionForProfile(p), + icon: 'fas fa-history', + callback: async () => { + if (p.id) { + p = (await this.profilesServices.getProfiles()).find(x => x.id === p.id) ?? p + } + this.launchProfile(p) + }, + })) if (recentProfiles.length) { options.push({ name: 'Clear recent connections', icon: 'fas fa-eraser', - callback: () => { + callback: async () => { this.config.store.recentProfiles = [] this.config.save() }, @@ -64,7 +64,10 @@ export class ButtonProvider extends ToolbarButtonProvider { profiles = profiles.filter(x => !x.isTemplate) - options = [...options, ...profiles.map(getProfileOptions)] + options = [...options, ...profiles.map((p): SelectorOption => ({ + ...this.profilesServices.selectorOptionForProfile(p), + callback: () => this.launchProfile(p), + }))] try { const { SettingsTabComponent } = window['nodeRequire']('tabby-settings')