From a7ef8c135f2ce187e77642fc4a51d115f6e78731 Mon Sep 17 00:00:00 2001 From: Vyacheslav Pushkin Date: Sat, 26 Dec 2020 17:01:40 +0400 Subject: [PATCH] fix: login form not shown when session expires #350 (cherry picked from commit 8e371096abb66bead60799efd2192cc1feb070cf) --- packages/jmix-react-core/src/app/MainStore.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/packages/jmix-react-core/src/app/MainStore.ts b/packages/jmix-react-core/src/app/MainStore.ts index 8c5f04220..a634ef35c 100644 --- a/packages/jmix-react-core/src/app/MainStore.ts +++ b/packages/jmix-react-core/src/app/MainStore.ts @@ -45,6 +45,8 @@ export class MainStore { private messagesRequestCount = 0; private enumsRequestCount = 0; + private disposeTokenExpiryListener?: () => {}; + constructor(private cubaREST: CubaApp) { this.cubaREST.onLocaleChange(this.handleLocaleChange); this.security = new Security(this.cubaREST); @@ -130,6 +132,9 @@ export class MainStore { return this.cubaREST.login(login, password).then(action(() => { this.userName = login; this.authenticated = true; + this.disposeTokenExpiryListener = this.cubaREST.onTokenExpiry(() => { + this.authenticated = false; + }); })) } @@ -143,6 +148,10 @@ export class MainStore { return this.cubaREST.logout() .then(action(() => { this.authenticated = false; + if (this.disposeTokenExpiryListener != null) { + this.disposeTokenExpiryListener(); + this.disposeTokenExpiryListener = undefined; + } })); } return Promise.resolve();