UNPKG

@sendbird/uikit-react

Version:

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

249 lines (248 loc) 11.6 kB
import type { User } from '@sendbird/chat'; import { FailedMessageHandler, MessageHandler, UserMessage, UserMessageCreateParams } from '@sendbird/chat/message'; import { GroupChannel, GroupChannelCreateParams } from '@sendbird/chat/groupChannel'; import { OpenChannel, OpenChannelCreateParams } from '@sendbird/chat/openChannel'; import { FileMessage, FileMessageCreateParams, SendableMessage, UserMessageUpdateParams } from '@sendbird/chat/lib/__definition'; import { SendbirdState } from './Sendbird/types'; import { SendableMessageType } from '../utils'; import { PublishingModuleType } from '../modules/internalInterfaces'; /** * 1. UIKit Instances * a. getSdk * b. getPubSub * 2. Chat & Connection * a. getConnect * b. getDisconnect * c. getUpdateUserInfo * 3. Channel * a. getCreateGroupChannel * b. getCreateOpenChannel * c. getGetGroupChannel * d. getGetOpenChannel * e. getLeaveGroupChannel * f. getEnterOpenChannel * g. getExitOpenChannel * h. getFreezeChannel * i. getUnfreezeChannel * 4. Message * a. getSendUserMessage * b. getSendFileMessage * c. getUpdateUserMessage * d. x - getUpdateFileMessage * e. getDeleteMessage * f. getResendUserMessage * g. getResendFileMessage */ /** * import useSendbirdStateContext from '@sendbird-uikit/useSendbirdStateContext' * import selectors from '@sendbird-uikit/send' * const state = useSendbirdStateContext(); */ /** * const sdk = selectors.getSdk(state); */ export declare const getSdk: (state: SendbirdState) => import("@sendbird/chat").default & import("@sendbird/chat/lib/__definition").ModuleNamespaces<[import("@sendbird/chat/groupChannel").GroupChannelModule, import("@sendbird/chat/openChannel").OpenChannelModule]>; /** * const pubSub = selectors.getPubSub(state); */ export declare const getPubSub: (state: SendbirdState) => import("./pubSub/topics").SBUGlobalPubSub; /** * const connect = selectors.getConnect(state); * connect('user-id-sendbirdian', 'access-token-0000') * .then((user) => {}) * .catch((error) => {}) */ export declare const getConnect: (state: SendbirdState) => (userId: string, accessToken?: string) => Promise<User>; /** * const disconnect = selectors.getDisconnect(state); * disconnect() * .then(() => {}) * .catch((error) => {}) */ export declare const getDisconnect: (state: SendbirdState) => () => Promise<void>; /** * const updateUserInfo = selectors.getUpdateUserInfo(state); * updateUserInfo('new-nickname', 'new-profile-url') * .then((user) => {}) * .catch((error) => {}) */ export declare const getUpdateUserInfo: (state: SendbirdState) => (nickname: string, profileUrl?: string) => Promise<User>; /** * const createGroupChannel = selectors.getCreateGroupChannel(state); * createGroupChannel(channelParams: GroupChannelCreateParams) * .then((channel) => {}) * .catch((error) => {}) */ export declare const getCreateGroupChannel: (state: SendbirdState) => (params: GroupChannelCreateParams) => Promise<GroupChannel>; /** * const createOpenChannel = selectors.getCreateOpenChannel(state); * createOpenChannel(channelParams: OpenChannelCreateParams) * .then((channel) => {}) * .catch((error) => {}) */ export declare const getCreateOpenChannel: (state: SendbirdState) => (params: OpenChannelCreateParams) => Promise<OpenChannel>; /** * const getGroupChannel = selectors.getGetGroupChannel(state); * getGroupChannel('channel-url-1234', isSelected) * .then((channel) => { * // groupChannel = channel; * // or * // setCurrentChannel(channel); * }) * .catch((error) => {}) */ export declare const getGetGroupChannel: (state: SendbirdState) => (channelUrl: string) => Promise<GroupChannel>; /** * const getOpenChannel = selectors.getGetOpenChannel(state); * getOpenChannel('channel-url-12345') * .then((channel) => { * // openChannel = channel; * // or * // setCurrentChannel(channel); * }) * .catch((error) => {}) */ export declare const getGetOpenChannel: (state: SendbirdState) => (channelUrl: string) => Promise<OpenChannel>; /** * const leaveChannel = selectors.getLeaveGroupChannel(state); * leaveChannel('group-channel-url') * .then((channel) => {}) * .catch((error) => {}) */ export declare const getLeaveGroupChannel: (state: SendbirdState) => (channelUrl: string) => Promise<void>; /** * const enterChannel = selectors.getEnterOpenChannel(state); * enterChannel('open-channel-url') * .then((channel) => {}) * .catch((error) => {}) */ export declare const getEnterOpenChannel: (state: SendbirdState) => (channelUrl: string) => Promise<OpenChannel>; /** * const exitChannel = selectors.getExitOpenChannel(state); * exitChannel('open-channel-url') * .then((channel) => {}) * .catch((error) => {}) */ export declare const getExitOpenChannel: (state: SendbirdState) => (channelUrl: string) => Promise<OpenChannel>; /** * const freezeChannel = selectors.getFreezeChannel(currentChannel); * freezeChannel() * .then(() => {}) * .catch((error) => {}) */ export declare const getFreezeChannel: () => (channel: GroupChannel | OpenChannel) => Promise<void>; /** * const unfreezeChannel = selectors.getUnfreezeChannel(currentChannel); * unfreezeChannel() * .then((channel) => {}) * .catch((error) => {}) */ export declare const getUnfreezeChannel: () => (channel: GroupChannel | OpenChannel) => Promise<void>; export declare class UikitMessageHandler<T extends SendableMessage = SendableMessage> { private _onPending; private _onFailed; private _onSucceeded; triggerPending(message: T): void; triggerFailed(error: Error, message: T | null): void; triggerSucceeded(message: T): void; onPending(handler: MessageHandler<T>): UikitMessageHandler<T>; onFailed(handler: FailedMessageHandler<T>): UikitMessageHandler<T>; onSucceeded(handler: MessageHandler<T>): UikitMessageHandler<T>; } /** * const sendUserMessage = selectors.getSendUserMessage(state); * sendUserMessage( * channel: GroupChannel | OpenChannel, * params: UserMessageCreateParams, * ) * .onPending((message) => {}) * .onFailed((error, message) => {}) * .onSucceeded((message) => {}) */ export declare const getSendUserMessage: (state: SendbirdState, publishingModules?: PublishingModuleType[]) => (channel: GroupChannel | OpenChannel, params: UserMessageCreateParams) => UikitMessageHandler; /** * const sendFileMessage = selectors.getSendFileMessage(state); * sendFileMessage( * channel: GroupChannel | OpenChannel, * params: FileMessageCreateParams, * ) * .onPending((message) => {}) * .onFailed((error, message) => {}) * .onSucceeded((message) => {}) */ export declare const getSendFileMessage: (state: SendbirdState, publishingModules?: PublishingModuleType[]) => (channel: GroupChannel | OpenChannel, params: FileMessageCreateParams) => UikitMessageHandler; /** * const updateUserMessage = selectors.getUpdateUserMessage(state); * updateUserMessage( * channel: GroupChannel | OpenChannel, * messageId: number, * messageParams: UserMessageUpdateParams, * ) * .then((message) => {}) * .catch((error) => {}) */ export declare const getUpdateUserMessage: (state: SendbirdState, publishingModules?: PublishingModuleType[]) => (channel: GroupChannel | OpenChannel, messageId: number, params: UserMessageUpdateParams) => Promise<UserMessage>; /** * const updateFileMessage = selectors.getUpdateFileMessage(state); * updateFileMessage( * channel: GroupChannel | OpenChannel, * messageId: number, * params: FileMessageUpdateParams, * ) * .then((message) => {}) * .catch((error) => {}) */ /** * const deleteMessage = selectors.getDeleteMessage(state); * deleteMessage( * channel: GroupChannel | OpenChannel, * message: SendableMessage, * ) * .then((deletedMessage) => {}) * .catch((error) => {}) */ export declare const getDeleteMessage: (state: SendbirdState) => (channel: GroupChannel | OpenChannel, message: SendableMessageType) => Promise<SendableMessageType>; /** * const resendUserMessage = selectors.getResendUserMessage(state); * resendUserMessage( * channel: GroupChannel | OpenChannel, * failedMessage: UserMessage, * ) * .then(() => {}) * .catch((error) => {}) */ export declare const getResendUserMessage: (state: SendbirdState, publishingModules?: PublishingModuleType[]) => (channel: GroupChannel | OpenChannel, failedMessage: UserMessage) => Promise<UserMessage>; /** * const resendFileMessage = selectors.getResendFileMessage(state); * resendFileMessage( * channel: GroupChannel | OpenChannel, * failedMessage: FileMessage, * blob: Blob, * ) * .then(() => {}) * .catch((error) => {}) */ export declare const getResendFileMessage: (state: SendbirdState, publishingModules?: PublishingModuleType[]) => (channel: GroupChannel | OpenChannel, failedMessage: FileMessage, blob: Blob) => Promise<FileMessage>; declare const sendbirdSelectors: { getSdk: (state: SendbirdState) => import("@sendbird/chat").default & import("@sendbird/chat/lib/__definition").ModuleNamespaces<[import("@sendbird/chat/groupChannel").GroupChannelModule, import("@sendbird/chat/openChannel").OpenChannelModule]>; getPubSub: (state: SendbirdState) => import("./pubSub/topics").SBUGlobalPubSub; getConnect: (state: SendbirdState) => (userId: string, accessToken?: string) => Promise<User>; getDisconnect: (state: SendbirdState) => () => Promise<void>; getUpdateUserInfo: (state: SendbirdState) => (nickname: string, profileUrl?: string) => Promise<User>; getCreateGroupChannel: (state: SendbirdState) => (params: GroupChannelCreateParams) => Promise<GroupChannel>; getCreateOpenChannel: (state: SendbirdState) => (params: OpenChannelCreateParams) => Promise<OpenChannel>; getGetGroupChannel: (state: SendbirdState) => (channelUrl: string) => Promise<GroupChannel>; getGetOpenChannel: (state: SendbirdState) => (channelUrl: string) => Promise<OpenChannel>; getLeaveGroupChannel: (state: SendbirdState) => (channelUrl: string) => Promise<void>; getEnterOpenChannel: (state: SendbirdState) => (channelUrl: string) => Promise<OpenChannel>; getExitOpenChannel: (state: SendbirdState) => (channelUrl: string) => Promise<OpenChannel>; getFreezeChannel: () => (channel: GroupChannel | OpenChannel) => Promise<void>; getUnfreezeChannel: () => (channel: GroupChannel | OpenChannel) => Promise<void>; getSendUserMessage: (state: SendbirdState, publishingModules?: PublishingModuleType[]) => (channel: GroupChannel | OpenChannel, params: UserMessageCreateParams) => UikitMessageHandler; getSendFileMessage: (state: SendbirdState, publishingModules?: PublishingModuleType[]) => (channel: GroupChannel | OpenChannel, params: FileMessageCreateParams) => UikitMessageHandler; getUpdateUserMessage: (state: SendbirdState, publishingModules?: PublishingModuleType[]) => (channel: GroupChannel | OpenChannel, messageId: number, params: UserMessageUpdateParams) => Promise<UserMessage>; getDeleteMessage: (state: SendbirdState) => (channel: GroupChannel | OpenChannel, message: SendableMessageType) => Promise<SendableMessageType>; getResendUserMessage: (state: SendbirdState, publishingModules?: PublishingModuleType[]) => (channel: GroupChannel | OpenChannel, failedMessage: UserMessage) => Promise<UserMessage>; getResendFileMessage: (state: SendbirdState, publishingModules?: PublishingModuleType[]) => (channel: GroupChannel | OpenChannel, failedMessage: FileMessage, blob: Blob) => Promise<FileMessage>; }; export default sendbirdSelectors;