Merge pull request #2002 from Tyrritt/comment-timestamps-seek

Make timestamps in comments seek instead of reload
This commit is contained in:
Kavin 2023-01-26 18:32:59 +00:00 committed by GitHub
commit 7223778ecc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -336,6 +336,7 @@ export default {
this.getPlaylistData(); this.getPlaylistData();
this.getSponsors(); this.getSponsors();
if (!this.isEmbed && this.showComments) this.getComments(); if (!this.isEmbed && this.showComments) this.getComments();
window.addEventListener("click", this.handleClick);
window.addEventListener("resize", () => { window.addEventListener("resize", () => {
this.smallView = this.smallViewQuery.matches; this.smallView = this.smallViewQuery.matches;
}); });
@ -359,6 +360,7 @@ export default {
}, },
unmounted() { unmounted() {
window.removeEventListener("scroll", this.handleScroll); window.removeEventListener("scroll", this.handleScroll);
window.removeEventListener("click", this.handleClick);
}, },
methods: { methods: {
fetchVideo() { fetchVideo() {
@ -511,6 +513,19 @@ export default {
} }
this.subscribed = !this.subscribed; this.subscribed = !this.subscribed;
}, },
handleClick(event) {
if (!event || !event.target) return;
var target = event.target;
if (
!target.nodeName == "A" ||
!target.getAttribute("href") ||
!target.innerText.match(/(?:[\d]{1,2}:)?(?:[\d]{1,2}):(?:[\d]{1,2})/)
)
return;
const time = parseInt(target.getAttribute("href").match(/(?<=t=)\d+/)[0]);
this.navigate(time);
event.preventDefault();
},
handleScroll() { handleScroll() {
if (this.loading || !this.comments || !this.comments.nextpage) return; if (this.loading || !this.comments || !this.comments.nextpage) return;
if (window.innerHeight + window.scrollY >= this.$refs.comments?.offsetHeight - window.innerHeight) { if (window.innerHeight + window.scrollY >= this.$refs.comments?.offsetHeight - window.innerHeight) {