Просмотр исходного кода

restore tab colors during recovery (fixes #1713)

Eugene Pankov 5 лет назад
Родитель
Сommit
ceb75323fe
1 измененных файлов с 13 добавлено и 2 удалено
  1. 13 2
      terminus-core/src/services/tabRecovery.service.ts

+ 13 - 2
terminus-core/src/services/tabRecovery.service.ts

@@ -21,7 +21,16 @@ export class TabRecoveryService {
         window.localStorage.tabsRecovery = JSON.stringify(
             await Promise.all(
                 tabs
-                    .map(tab => tab.getRecoveryToken())
+                    .map(tab => {
+                        let token = tab.getRecoveryToken()
+                        if (token) {
+                            token = token.then(r => {
+                                r.tabColor = tab.color
+                                return r
+                            })
+                        }
+                        return token
+                    })
                     .filter(token => !!token)
             )
         )
@@ -31,7 +40,9 @@ export class TabRecoveryService {
         for (const provider of this.config.enabledServices(this.tabRecoveryProviders)) {
             try {
                 const tab = await provider.recover(token)
-                if (tab) {
+                if (tab !== null) {
+                    tab.options = tab.options || {}
+                    tab.options.color = token.tabColor || null
                     return tab
                 }
             } catch (error) {