Conditionally attach external message bus (#3131)

This commit is contained in:
Paulus Schoutsen 2019-04-27 10:37:15 -07:00 committed by GitHub
parent 981dd5df63
commit 44df0f698c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 5 deletions

View File

@ -27,7 +27,7 @@ const isExternal = location.search.includes("external_auth=1");
const authProm = isExternal
? () =>
import(/* webpackChunkName: "external_auth" */ "../external_app/external_auth").then(
(mod) => new mod.default(hassUrl)
({ createExternalAuth }) => createExternalAuth(hassUrl)
)
: () =>
getAuth({

View File

@ -45,10 +45,10 @@ if (!window.externalApp && !window.webkit) {
);
}
export default class ExternalAuth extends Auth {
public external = new ExternalMessaging();
class ExternalAuth extends Auth {
public external?: ExternalMessaging;
constructor(hassUrl) {
constructor(hassUrl: string) {
super({
hassUrl,
clientId: "",
@ -58,7 +58,6 @@ export default class ExternalAuth extends Auth {
// This will trigger connection to do a refresh right away
expires: 0,
});
this.external.attach();
}
public async refreshAccessToken() {
@ -100,3 +99,15 @@ export default class ExternalAuth extends Auth {
});
}
}
export const createExternalAuth = (hassUrl: string) => {
const auth = new ExternalAuth(hassUrl);
if (
(window.externalApp && window.externalApp.externalBus) ||
(window.webkit && window.webkit.messageHandlers.externalBus)
) {
auth.external = new ExternalMessaging();
auth.external.attach();
}
return auth;
};