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,
sleepTimer: null,
displayTitle: null,
initialPlaybackRate: 1
initialPlaybackRate: 1,
syncFailedToast: null
}
},
computed: {
@ -380,6 +381,10 @@ export default {
},
pauseItem() {
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() {

View File

@ -20,6 +20,7 @@ export default class PlayerHandler {
this.currentSessionId = null
this.startTime = 0
this.failedProgressSyncs = 0
this.lastSyncTime = 0
this.lastSyncedAt = 0
this.listeningTimeSinceSync = 0
@ -186,6 +187,7 @@ export default class PlayerHandler {
}
prepareSession(session) {
this.failedProgressSyncs = 0
this.startTime = session.currentTime
this.currentSessionId = session.id
this.displayTitle = session.displayTitle
@ -286,8 +288,15 @@ export default class PlayerHandler {
currentTime
}
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)
this.failedProgressSyncs++
if (this.failedProgressSyncs >= 2) {
this.ctx.showFailedProgressSyncs()
this.failedProgressSyncs = 0
}
})
}