Prevent error on highlighted thread
This commit is contained in:
parent
37b1d97f22
commit
5a9a56b78f
|
@ -5,6 +5,7 @@ import { AuthService, ComponentPagination, ConfirmService, hasMoreItems, Notifie
|
|||
import { HooksService } from '@app/core/plugins/hooks.service'
|
||||
import { Syndication, VideoDetails } from '@app/shared/shared-main'
|
||||
import { VideoComment, VideoCommentService, VideoCommentThreadTree } from '@app/shared/shared-video-comment'
|
||||
import { PeerTubeProblemDocument, ServerErrorCode } from '@shared/models'
|
||||
|
||||
@Component({
|
||||
selector: 'my-video-comments',
|
||||
|
@ -104,7 +105,14 @@ export class VideoCommentsComponent implements OnInit, OnChanges, OnDestroy {
|
|||
}
|
||||
},
|
||||
|
||||
error: err => this.notifier.error(err.message)
|
||||
error: err => {
|
||||
// We may try to fetch highlighted thread of another video, skip the error if it is the case
|
||||
// We'll retry the request on video Input() change
|
||||
const errorBody = err.body as PeerTubeProblemDocument
|
||||
if (highlightThread && errorBody?.code === ServerErrorCode.COMMENT_NOT_ASSOCIATED_TO_VIDEO) return
|
||||
|
||||
this.notifier.error(err.message)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -254,6 +262,10 @@ export class VideoCommentsComponent implements OnInit, OnChanges, OnDestroy {
|
|||
|
||||
this.syndicationItems = this.videoCommentService.getVideoCommentsFeeds(this.video)
|
||||
this.loadMoreThreads()
|
||||
|
||||
if (this.activatedRoute.params['threadId']) {
|
||||
this.processHighlightedThread(+this.activatedRoute.params['threadId'])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -242,6 +242,8 @@ export class VideoWatchComponent implements OnInit, OnDestroy {
|
|||
|
||||
if (this.player) this.player.pause()
|
||||
|
||||
this.video = undefined
|
||||
|
||||
const videoObs = this.hooks.wrapObsFun(
|
||||
this.videoService.getVideo.bind(this.videoService),
|
||||
{ videoId },
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import express from 'express'
|
||||
import { VideoCommentModel } from '@server/models/video/video-comment'
|
||||
import { MVideoId } from '@server/types/models'
|
||||
import { HttpStatusCode } from '@shared/models'
|
||||
import { HttpStatusCode, ServerErrorCode } from '@shared/models'
|
||||
|
||||
async function doesVideoCommentThreadExist (idArg: number | string, video: MVideoId, res: express.Response) {
|
||||
const id = parseInt(idArg + '', 10)
|
||||
|
@ -16,7 +16,10 @@ async function doesVideoCommentThreadExist (idArg: number | string, video: MVide
|
|||
}
|
||||
|
||||
if (videoComment.videoId !== video.id) {
|
||||
res.fail({ message: 'Video comment is not associated to this video.' })
|
||||
res.fail({
|
||||
type: ServerErrorCode.COMMENT_NOT_ASSOCIATED_TO_VIDEO,
|
||||
message: 'Video comment is not associated to this video.'
|
||||
})
|
||||
return false
|
||||
}
|
||||
|
||||
|
@ -42,7 +45,10 @@ async function doesVideoCommentExist (idArg: number | string, video: MVideoId, r
|
|||
}
|
||||
|
||||
if (videoComment.videoId !== video.id) {
|
||||
res.fail({ message: 'Video comment is not associated to this video.' })
|
||||
res.fail({
|
||||
type: ServerErrorCode.COMMENT_NOT_ASSOCIATED_TO_VIDEO,
|
||||
message: 'Video comment is not associated to this video.'
|
||||
})
|
||||
return false
|
||||
}
|
||||
|
||||
|
|
|
@ -37,7 +37,9 @@ export const enum ServerErrorCode {
|
|||
* A torrent should have at most one correct video file. Any more and we will
|
||||
* not be able to choose automatically.
|
||||
*/
|
||||
INCORRECT_FILES_IN_TORRENT = 'incorrect_files_in_torrent'
|
||||
INCORRECT_FILES_IN_TORRENT = 'incorrect_files_in_torrent',
|
||||
|
||||
COMMENT_NOT_ASSOCIATED_TO_VIDEO = 'comment_not_associated_to_video'
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue