UNPKG

@sendbird/uikit-react

Version:

Sendbird UIKit for React: A feature-rich and customizable chat UI kit with messaging, channel management, and user authentication.

69 lines (68 loc) 3.12 kB
import React from 'react'; import type { GroupChannel } from '@sendbird/chat/groupChannel'; import { MessageSearchQuery } from '@sendbird/chat/message'; import { ClientSentMessages } from '../../../types'; import { SendbirdError } from '@sendbird/chat'; import type { MessageSearchQueryParams } from '@sendbird/chat/lib/__definition'; import useScrollCallback from './hooks/useScrollCallback'; import { CoreMessageType } from '../../../utils'; export interface MessageSearchProviderProps { channelUrl: string; children?: React.ReactElement; searchString?: string; messageSearchQuery?: MessageSearchQueryParams; onResultLoaded?(messages?: Array<CoreMessageType> | null, error?: SendbirdError | null): void; onResultClick?(message: ClientSentMessages): void; } export interface MessageSearchState extends MessageSearchProviderProps { channelUrl: string; allMessages: ClientSentMessages[]; loading: boolean; isInvalid: boolean; initialized: boolean; currentChannel: GroupChannel | null; currentMessageSearchQuery: MessageSearchQuery | null; hasMoreResult: boolean; retryCount: number; selectedMessageId: number | null; requestString: string; onScroll?: ReturnType<typeof useScrollCallback>; handleOnScroll?: (e: React.BaseSyntheticEvent) => void; scrollRef?: React.RefObject<HTMLDivElement>; } export declare const MessageSearchContext: React.Context<import("../../../utils/storeManager").Store<MessageSearchState>>; declare const MessageSearchManager: React.FC<MessageSearchProviderProps>; declare const MessageSearchProvider: React.FC<MessageSearchProviderProps>; declare const useMessageSearchContext: () => { setCurrentChannel: (channel: GroupChannel) => void; setChannelInvalid: () => void; getSearchedMessages: (messages: ClientSentMessages[], createdQuery: MessageSearchQuery) => void; setQueryInvalid: () => void; startMessageSearch: () => void; startGettingSearchedMessages: (query: MessageSearchQuery) => void; getNextSearchedMessages: (messages: ClientSentMessages[]) => void; resetSearchString: () => void; setSelectedMessageId: (messageId: number) => () => void; handleRetryToConnect: () => void; setRetryCount: () => void; channelUrl: string; allMessages: ClientSentMessages[]; loading: boolean; isInvalid: boolean; initialized: boolean; currentChannel: GroupChannel | null; currentMessageSearchQuery: MessageSearchQuery | null; hasMoreResult: boolean; retryCount: number; selectedMessageId: number | null; requestString: string; onScroll?: ReturnType<typeof useScrollCallback>; handleOnScroll?: (e: React.BaseSyntheticEvent) => void; scrollRef?: React.RefObject<HTMLDivElement>; children?: React.ReactElement; searchString?: string; messageSearchQuery?: MessageSearchQueryParams; onResultLoaded?(messages?: Array<CoreMessageType> | null, error?: SendbirdError | null): void; onResultClick?(message: ClientSentMessages): void; }; export { MessageSearchProvider, useMessageSearchContext, MessageSearchManager, };