diff --git a/src/components/ChaptersBar.vue b/src/components/ChaptersBar.vue index 1b0f74c2..ca57f195 100644 --- a/src/components/ChaptersBar.vue +++ b/src/components/ChaptersBar.vue @@ -9,6 +9,11 @@ v-for="(chapter, index) in chapters" @click="$emit('seek', chapter.start)" class="chapter-vertical" + :class=" + playerPosition >= chapter.start && playerPosition < chapters[index + 1].start + ? 'chapter-vertical bg-red-500/50' + : 'chapter-vertical' + " >
@@ -22,7 +27,16 @@
-
+
@@ -65,6 +79,10 @@ defineProps({ type: Boolean, default: () => true, }, + playerPosition: { + type: Number, + default: () => 0, + }, }); defineEmits(["seek"]); diff --git a/src/components/VideoPlayer.vue b/src/components/VideoPlayer.vue index d42b33a1..a1a2c79f 100644 --- a/src/components/VideoPlayer.vue +++ b/src/components/VideoPlayer.vue @@ -42,6 +42,7 @@ export default { selectedAutoLoop: Boolean, isEmbed: Boolean, }, + emits: ["timeupdate"], data() { return { lastUpdate: new Date().getTime(), @@ -343,6 +344,7 @@ export default { if (noPrevPlayer) { videoEl.addEventListener("timeupdate", () => { const time = videoEl.currentTime; + this.$emit("timeupdate", time); this.updateProgressDatabase(time); if (this.sponsors && this.sponsors.segments) { this.sponsors.segments.map(segment => { diff --git a/src/components/WatchVideo.vue b/src/components/WatchVideo.vue index 49fd0a1f..64c4e86d 100644 --- a/src/components/WatchVideo.vue +++ b/src/components/WatchVideo.vue @@ -25,11 +25,13 @@ :index="index" :selected-auto-play="selectedAutoPlay" :selected-auto-loop="selectedAutoLoop" + @timeupdate="onTimeUpdate" />
@@ -242,6 +244,7 @@ export default { smallView: smallViewQuery.matches, showModal: false, isMobile: true, + currentTime: 0, }; }, computed: { @@ -465,6 +468,9 @@ export default { navigate(time) { this.$refs.videoPlayer.seek(time); }, + onTimeUpdate(time) { + this.currentTime = time; + }, }, };