diff --git a/pages/item/_id/_episode/index.vue b/pages/item/_id/_episode/index.vue index 1e915bc3..d0ccd69d 100644 --- a/pages/item/_id/_episode/index.vue +++ b/pages/item/_id/_episode/index.vue @@ -329,42 +329,9 @@ export default { seekTimeInSeconds = hours * 3600 + minutes * 60 + seconds } - return `${match}` + return `${match}` }) }, - clickPlaybackTime(event) { - const startTime = event.target.getAttribute('data-time') - if (this.playerIsStartingPlayback) return - - this.$hapticsImpact() - - this.$store.commit('setPlayerIsStartingPlayback', this.episode.id) - - const playbackData = { - libraryItemId: this.libraryItemId, - episodeId: this.episode.id, - serverLibraryItemId: this.serverLibraryItemId, - serverEpisodeId: this.serverEpisodeId, - startTime - } - - if (this.localEpisodeId && this.localLibraryItemId && !this.isLocal) { - playbackData.libraryItemId = this.localLibraryItemId - playbackData.episodeId = this.localEpisodeId - } - - this.$eventBus.$emit('play-item', playbackData) - }, - bindTimeMarkerEvents() { - const container = document.querySelector('.description-container') - if (container) { - container.addEventListener('click', (event) => { - if (event.target.classList.contains('time-marker')) { - this.clickPlaybackTime(event) - } - }) - } - }, async deleteLocalEpisode() { await this.$hapticsImpact() @@ -406,23 +373,48 @@ export default { } else { this.$store.commit('setPlayerIsStartingPlayback', this.episode.id) - if (this.localEpisodeId && this.localLibraryItemId && !this.isLocal) { - console.log('Play local episode', this.localEpisodeId, this.localLibraryItemId) + const playbackData = this.generatePlaybackData() + this.emitPlayItemEvent(playbackData) + } + }, + async clickPlaybackTime(event) { + const startTime = event.target.getAttribute('data-time') + if (this.playerIsStartingPlayback) return - this.$eventBus.$emit('play-item', { - libraryItemId: this.localLibraryItemId, - episodeId: this.localEpisodeId, - serverLibraryItemId: this.serverLibraryItemId, - serverEpisodeId: this.serverEpisodeId - }) - } else { - this.$eventBus.$emit('play-item', { - libraryItemId: this.libraryItemId, - episodeId: this.episode.id, - serverLibraryItemId: this.serverLibraryItemId, - serverEpisodeId: this.serverEpisodeId - }) - } + await this.$hapticsImpact() + + this.$store.commit('setPlayerIsStartingPlayback', this.episode.id) + + const playbackData = this.generatePlaybackData(startTime) + this.emitPlayItemEvent(playbackData) + }, + generatePlaybackData(startTime) { + const playbackData = { + libraryItemId: this.libraryItemId, + episodeId: this.episode.id, + serverLibraryItemId: this.serverLibraryItemId, + serverEpisodeId: this.serverEpisodeId, + startTime + } + + if (this.localEpisodeId && this.localLibraryItemId && !this.isLocal) { + playbackData.libraryItemId = this.localLibraryItemId + playbackData.episodeId = this.localEpisodeId + } + + return playbackData + }, + emitPlayItemEvent(playbackData) { + this.$eventBus.$emit('play-item', playbackData) + }, + bindTimeMarkerEvents() { + const container = document.querySelector('.description-container') + if (container) { + container.addEventListener('click', (event) => { + if (event.target.classList.contains('time-marker')) { + this.clickPlaybackTime(event) + } + }) } }, async downloadClick() {