Add:Alert when progress is not syncing

This commit is contained in:
advplyr 2022-06-03 19:11:13 -05:00
parent bf928692d5
commit e8cd18eac2
2 changed files with 16 additions and 2 deletions

View File

@ -71,7 +71,8 @@ export default {
sleepTimerRemaining: 0, sleepTimerRemaining: 0,
sleepTimer: null, sleepTimer: null,
displayTitle: null, displayTitle: null,
initialPlaybackRate: 1 initialPlaybackRate: 1,
syncFailedToast: null
} }
}, },
computed: { computed: {
@ -380,6 +381,10 @@ export default {
}, },
pauseItem() { pauseItem() {
this.playerHandler.pause() this.playerHandler.pause()
},
showFailedProgressSyncs() {
if (!isNaN(this.syncFailedToast)) this.$toast.dismiss(this.syncFailedToast)
this.syncFailedToast = this.$toast('Progress is not being synced. Restart playback', { timeout: false, type: 'error' })
} }
}, },
mounted() { mounted() {

View File

@ -20,6 +20,7 @@ export default class PlayerHandler {
this.currentSessionId = null this.currentSessionId = null
this.startTime = 0 this.startTime = 0
this.failedProgressSyncs = 0
this.lastSyncTime = 0 this.lastSyncTime = 0
this.lastSyncedAt = 0 this.lastSyncedAt = 0
this.listeningTimeSinceSync = 0 this.listeningTimeSinceSync = 0
@ -186,6 +187,7 @@ export default class PlayerHandler {
} }
prepareSession(session) { prepareSession(session) {
this.failedProgressSyncs = 0
this.startTime = session.currentTime this.startTime = session.currentTime
this.currentSessionId = session.id this.currentSessionId = session.id
this.displayTitle = session.displayTitle this.displayTitle = session.displayTitle
@ -286,8 +288,15 @@ export default class PlayerHandler {
currentTime currentTime
} }
this.listeningTimeSinceSync = 0 this.listeningTimeSinceSync = 0
this.ctx.$axios.$post(`/api/session/${this.currentSessionId}/sync`, syncData, { timeout: 1000 }).catch((error) => { this.ctx.$axios.$post(`/api/session/${this.currentSessionId}/sync`, syncData, { timeout: 1000 }).then(() => {
this.failedProgressSyncs = 0
}).catch((error) => {
console.error('Failed to update session progress', error) console.error('Failed to update session progress', error)
this.failedProgressSyncs++
if (this.failedProgressSyncs >= 2) {
this.ctx.showFailedProgressSyncs()
this.failedProgressSyncs = 0
}
}) })
} }