Better tracking of loginRunning/Cancelled

This commit is contained in:
Andrew Ferrazzutti 2021-02-12 02:16:09 -05:00
parent 3a666a3fd4
commit 94a86b93ad
1 changed files with 17 additions and 11 deletions

View File

@ -126,7 +126,6 @@ export default class MessagesPuppeteer {
return return
} }
this.loginRunning = true this.loginRunning = true
this.loginCancelled = false
const loginContentArea = await this.page.waitForSelector("#login_content") const loginContentArea = await this.page.waitForSelector("#login_content")
@ -226,6 +225,7 @@ export default class MessagesPuppeteer {
} }
this.log("Waiting for sync") this.log("Waiting for sync")
try {
await this.page.waitForFunction( await this.page.waitForFunction(
messageSyncElement => { messageSyncElement => {
const text = messageSyncElement.innerText const text = messageSyncElement.innerText
@ -234,9 +234,12 @@ export default class MessagesPuppeteer {
{}, {},
result) result)
await this.startObserving()
this.loginRunning = false this.loginRunning = false
await this.startObserving()
this.log("Login complete") this.log("Login complete")
} catch (err) {
this._sendLoginFailure(`Failed to sync: ${err}`)
}
} }
/** /**
@ -244,6 +247,7 @@ export default class MessagesPuppeteer {
*/ */
async cancelLogin() { async cancelLogin() {
if (this.loginRunning) { if (this.loginRunning) {
this.loginRunning = false
this.loginCancelled = true this.loginCancelled = true
await this._preparePage(false) await this._preparePage(false)
} }
@ -252,6 +256,7 @@ export default class MessagesPuppeteer {
_waitForLoginCancel() { _waitForLoginCancel() {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
if (this.loginCancelled) { if (this.loginCancelled) {
this.loginCancelled = false
resolve() resolve()
} else { } else {
reject() reject()
@ -523,6 +528,7 @@ export default class MessagesPuppeteer {
} }
_sendLoginFailure(reason) { _sendLoginFailure(reason) {
this.loginRunning = false
this.error(`Login failure: ${reason ? reason : 'cancelled'}`) this.error(`Login failure: ${reason ? reason : 'cancelled'}`)
if (this.client) { if (this.client) {
this.client.sendFailure(reason).catch(err => this.client.sendFailure(reason).catch(err =>