Événements
L'élément <hyvor-talk-comments> émet plusieurs événements que vous pouvez écouter. Par
exemple, lorsqu'un commentaire est publié, vous pouvez utiliser les événements pour l'enregistrer dans votre service d'analyse.
Les événements suivants sont émis :
loaded- déclenché lorsque l'embed est entièrement chargécomment:publishedcomment:editedcomment:deletedcomment:votedcomment:flaggedreactionratingauth:login:clicked* - lorsque le bouton/lien de connexion est cliquéprofile:clicked* - lorsque le profil de l'utilisateur (nom ou photo de profil) est cliqué
Vous pouvez appeler preventDefault() sur l'événement pour empêcher l'action par défaut pour les événements
marqués d'un *.
Écouter les événements
Utilisez addEventListener sur l'élément <hyvor-talk-comments>.
const comments = document.querySelector('hyvor-talk-comments');
comments.addEventListener('comment:published', function (e) {
console.log('Comment ID: ' + e.detail.id);
});Données des événements
Voici une définition TypeScript de tous les événements émis (nom_événement : données) :
interface CommentsEvents {
loaded: null;
'comment:published': RealComment;
'comment:edited': Comment;
'comment:deleted': Comment;
'comment:voted': {
comment: Comment;
vote: 'up' | 'down' | null;
};
'comment:flagged': {
comment: Comment;
};
reaction: {
type: 'superb' | 'love' | 'wow' | 'sad' | 'laugh' | 'angry';
};
rating: {
rating: number;
count: number;
average: number;
};
'auth:login:clicked': null;
// when clicking on user's name or profile picture
'profile:clicked': User;
}Objet Comment
L'objet Comment peut être un HiddenComment (ex. : un commentaire supprimé qui
a des réponses) ou un RealComment.
interface BaseComment {
id: number;
page_id: number;
url: string;
parent_id: number | null;
depth: number;
created_at: number;
}
interface HiddenComment extends BaseComment {
is_hidden: true;
}
interface RealComment extends BaseComment {
is_hidden: false;
content: string;
content_html: string;
is_featured: boolean;
is_loved: boolean;
is_edited: boolean;
upvotes: number;
downvotes: number;
user: User;
status: 'published' | 'spam' | 'deleted' | 'pending';
}
type Comment = HiddenComment | RealComment;