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

Name
chatChatService = undefined
Required
discussionIdnumber = undefined
Required
focusOnOpenboolean = false
hideSearchboolean = false

Events

Name
Payload type
new-message
Orion.Chat.NewMessage

Slots

Name
Bindings
discussion-title
discussion: OrionChatEntity
prepend-discussion-actions
discussion: OrionChatEntity
showSearch: boolean
append-discussion-actions
discussion: OrionChatEntity

PublicInstance

Name
Type
checkUnreadMessagesInDom
() => Promise<void>
getDiscussionId
() => number | undefined
_el
(() => HTMLElement | undefined) | undefined

ChatMultipleDiscussions

Props

Name
chatChatService = undefined
Required

Events

Name
Payload type
new-discussion
No payload
select-discussion
number

Slots

Name
Bindings
append-discussion-list-header
No bindings
before-discussion-list
No bindings
discussion-item
discussion: OrionChatEntity
append-discussion-item
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:

userOrion.Chat.User

L'utilisateur de votre application. Ce paramètre est requis à la création.

allowMessageStatusboolean

Affiche le statut du message (lu / non lu)

allowDiscussionCreationboolean

Affiche l'icône de création d'une discussion dans le composant OrionChatDiscussionList

allowDiscussionSearchboolean

Active la recherche parmi les discussions dans le composant OrionChatDiscussionList

discussionSearchTimernumber : 500

Le délai avant de déclencher la recherche dans les discussions

discussionFetcherAsync(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

discussionTitleFormatter(discussion: OrionChatEntity) => string

La fonction permettant de formatter le titre des discussions

discussionInterlocutorsFormatter(discussion: OrionChatEntity) => User[]

La fonction permettant de formatter les participants à la discussion

discussionUnreadMessagesCounter(params: {discussion: OrionChatEntity, discussionId: number, messages: OrionChatMessageEntity[] }) => number

La fonction permettant de définir le nombre de messages non lus dans une discussion

messageFetcherAsync(params: { discussion: OrionChatEntity, discussionId: number, oldestMessageId?: number }) => Promise<Message[]>

La fonction permettant de récupérer la liste des messages depuis le BackEnd

onMessageReadAsync(message: OrionChatMessageEntity) => void

Callback à éxécuter lors de la lecture d'un message (pour sauvegarder son statut en BackEnd par exemple)

onNewMessageAsync(message: OrionChatMessageEntity, registerMessage: () => void) => void

Callback à éxécuter lors de la création d'un nouveau message par l'utilisateur

onActiveDiscussionChange(discussionId?: number, oldDiscussionId?: number) => void

Callback à éxécuter lors du changement de discussion