Orion Chat & Discussions
Ce composant est relativement complexe du fait des mécanismes qu'il induit, notamment les échanges avec votre BackEnd et les événements en temps réel.
Toutefois nous allons tenter de vous l'expliquer de façon simple en nous basant sur le playground ci-dessous.
Astuce
Il peut-être utilisé avec le composant OrionChatDiscussionList
si vous devez gérer plusieurs conversations.
Plus d'infos plus loin dans la section OrionChatDiscussionList.
ChatSimple
Props
ChatService = undefined
number = undefined
boolean = false
boolean = false
Events
Orion.Chat.NewMessage
Slots
OrionChatEntity
OrionChatEntity
boolean
OrionChatEntity
PublicInstance
() => Promise<void>
() => number | undefined
(() => HTMLElement | undefined) | undefined
ChatMultipleDiscussions
Props
ChatService = undefined
Events
No payload
number
Slots
No bindings
No bindings
OrionChatEntity
No bindings
Configuration de ChatService
Vous pouvez définir la configuration de votre instance au moment de sa création, où plus tard par le biais de la propriété config
// Configuration du user à la création
const chat = useChat({ user });
// Configuration de l'écouteur par la suite
chat.config.onNewMessageAsync = async (message, registerMessage) => {
// ...
};
Liste des paramètres:
Orion.Chat.User
L'utilisateur de votre application. Ce paramètre est requis à la création.
boolean
Affiche le statut du message (lu / non lu)
boolean
Affiche l'icône de création d'une discussion dans le composant OrionChatDiscussionList
boolean
Active la recherche parmi les discussions dans le composant OrionChatDiscussionList
number : 500
Le délai avant de déclencher la recherche dans les discussions
(params: { oldestDiscussionId?: number, oldestDiscussionUpdatedDate?: Date, searchTerm?: string, searchTermHasChanged?: boolean }) => Promise<Discussion[]>
La fonction permettant de récupérer la liste des discussions depuis le BackEnd
(discussion: OrionChatEntity) => string
La fonction permettant de formatter le titre des discussions
(discussion: OrionChatEntity) => User[]
La fonction permettant de formatter les participants à la discussion
(params: {discussion: OrionChatEntity, discussionId: number, messages: OrionChatMessageEntity[] }) => number
La fonction permettant de définir le nombre de messages non lus dans une discussion
(params: { discussion: OrionChatEntity, discussionId: number, oldestMessageId?: number }) => Promise<Message[]>
La fonction permettant de récupérer la liste des messages depuis le BackEnd
(message: OrionChatMessageEntity) => void
Callback à éxécuter lors de la lecture d'un message (pour sauvegarder son statut en BackEnd par exemple)
(message: OrionChatMessageEntity, registerMessage: () => void) => void
Callback à éxécuter lors de la création d'un nouveau message par l'utilisateur
(discussionId?: number, oldDiscussionId?: number) => void
Callback à éxécuter lors du changement de discussion