Skip to content
Yuva chat hookMenu

Yuva chat hook

A React hook over the useyuva headless client for live chat: the session, conversation list, one thread with realtime messages, typing, read state, sending text and files, rating and attachment download. Labels with English defaults.

loading

    The preview runs on sample data. It needs no network and no channel.

    Installation

    Run this in a shadcn project. The files are copied into your own code.

    Shell
    npx shadcn@latest add https://useyuva.com/r/use-yuva-chat.json

    Usage

    tsx
    import { useYuvaChat } from "@/hooks/use-yuva-chat"
    
    const chat = useYuvaChat({ server, channel })

    Props

    UseYuvaChatOptions

    PropType
    server?string
    channel?string
    client?YuvaClient
    identityToken?IdentityTokenSource | null
    helpArticleId?string

    YuvaChatState

    PropType
    loadingboolean
    errorunknown
    inboxClientInbox | null
    contactClientContact | null
    connectionConnectionState["state"]
    conversationsClientConversation[]
    hasMoreConversationsboolean
    loadMoreConversations() => Promise<void>
    activeIdstring | null
    conversationClientConversation | null
    open(id: string | null) => Promise<void>
    removedboolean
    threadLoadingboolean
    messagesYuvaChatMessage[]
    hasEarlierboolean
    loadEarlier() => Promise<void>
    typingClientMessage["author"] | null
    memberReadAtstring | null
    send(input: YuvaChatSendInput) => Promise<void>
    retry(id: string) => Promise<void>
    discard(id: string) => void
    setTyping(on: boolean) => void
    markRead() => Promise<void>
    rate(rating: Rating, comment?: string) => Promise<void>
    openAttachment(attachment: ClientAttachment) => Promise<void>
    saveEmail(email: string) => Promise<void>

    Dependencies

    Installing this item also adds the following.

    npm packages