import { Account as AccountInterface } from '../../../../../../shared/models/actors'
import { VideoComment as VideoCommentServerModel } from '../../../../../../shared/models/videos/video-comment.model'
import { Actor } from '@app/shared/actor/actor.model'
+import { getAbsoluteAPIUrl } from '@app/shared/misc/utils'
export class VideoComment implements VideoCommentServerModel {
id: number
by: string
accountAvatarUrl: string
+ isLocal: boolean
+
constructor (hash: VideoCommentServerModel) {
this.id = hash.id
this.url = hash.url
this.by = Actor.CREATE_BY_STRING(this.account.name, this.account.host)
this.accountAvatarUrl = Actor.GET_ACTOR_AVATAR_URL(this.account)
+
+ const absoluteAPIUrl = getAbsoluteAPIUrl()
+ const thisHost = new URL(absoluteAPIUrl).host
+ this.isLocal = this.account.host.trim() === thisHost
}
}
async onWantedToDelete (commentToDelete: VideoComment) {
let message = 'Do you really want to delete this comment?'
+
if (commentToDelete.totalReplies !== 0) {
message += this.i18n(' {{totalReplies}} replies will be deleted too.', { totalReplies: commentToDelete.totalReplies })
}
+ if (commentToDelete.isLocal) {
+ message += this.i18n(' The deletion will be sent to remote instances so they remove the comment too.')
+ } else {
+ message += this.i18n(' It is a remote comment, so the deletion will only be effective on your instance.')
+ }
+
const res = await this.confirmService.confirm(message, this.i18n('Delete'))
if (res === false) return