stream-chat-react
Version:
React components to create chat conversations or livestream style chat
82 lines • 4.06 kB
TypeScript
import type { TFunction } from 'i18next';
import type { ChannelConfigWithInfo, LocalMessage, MessageResponse, Mute, StreamChat, UserResponse } from 'stream-chat';
import type { MessageProps } from './types';
import type { MessageContextValue } from '../../context';
/**
* Following function validates a function which returns notification message.
* It validates if the first parameter is function and also if return value of function is string or no.
*/
export declare const validateAndGetMessage: <T extends unknown[]>(func: (...args: T) => unknown, args: T) => string | null;
/**
* Tell if the owner of the current message is muted
*/
export declare const isUserMuted: (message: LocalMessage, mutes?: Mute[]) => boolean;
export declare const OPTIONAL_MESSAGE_ACTIONS: {
deleteForMe: string;
};
export declare const MESSAGE_ACTIONS: {
delete: string;
download: string;
edit: string;
flag: string;
markUnread: string;
mute: string;
pin: string;
quote: string;
react: string;
remindMe: string;
reply: string;
saveForLater: string;
};
export type MessageActionsArray<T extends string = string> = Array<keyof typeof MESSAGE_ACTIONS | keyof typeof OPTIONAL_MESSAGE_ACTIONS | T>;
export type Capabilities = {
canDelete?: boolean;
canEdit?: boolean;
canFlag?: boolean;
canMarkUnread?: boolean;
canMute?: boolean;
canPin?: boolean;
canQuote?: boolean;
canReact?: boolean;
canReply?: boolean;
};
export declare const getMessageActions: (actions: MessageActionsArray | boolean, { canDelete, canEdit, canFlag, canMarkUnread, canMute, canPin, canQuote, canReact, canReply, }: Capabilities, channelConfig?: ChannelConfigWithInfo) => MessageActionsArray;
export declare const ACTIONS_NOT_WORKING_IN_THREAD: string[];
export declare const areMessagePropsEqual: (prevProps: MessageProps & {
mutes?: Mute[];
showDetailedReactions?: boolean;
}, nextProps: MessageProps & {
mutes?: Mute[];
showDetailedReactions?: boolean;
}) => boolean;
export declare const areMessageUIPropsEqual: (prevProps: MessageContextValue & {
showDetailedReactions?: boolean;
}, nextProps: MessageContextValue & {
showDetailedReactions?: boolean;
}) => boolean;
export declare const messageHasReactions: (message?: LocalMessage) => boolean;
export declare const messageHasQuotedMessage: (message?: LocalMessage) => boolean;
export declare const messageHasAttachments: (message?: LocalMessage) => boolean;
export declare const messageHasSingleAttachment: (message?: LocalMessage) => boolean;
export declare const messageHasGiphyAttachment: (message?: LocalMessage) => boolean;
export declare const getImages: (message?: MessageResponse) => import("stream-chat").Attachment[];
export declare const getNonImageAttachments: (message?: MessageResponse) => import("stream-chat").Attachment[];
export interface TooltipUsernameMapper {
(user: UserResponse): string;
}
/**
* Default Tooltip Username mapper implementation.
*
* @param user the user.
*/
export declare const mapToUserNameOrId: TooltipUsernameMapper;
export declare const getReadByTooltipText: (users: UserResponse[], t: TFunction, client: StreamChat, tooltipUserNameMapper: TooltipUsernameMapper) => string;
export declare const countEmojis: (text?: string) => number;
export declare const messageTextHasEmojisOnly: (message: LocalMessage) => boolean;
export declare const isMessageErrorRetryable: (message: LocalMessage) => boolean;
export declare const isNetworkSendFailure: (message: Pick<LocalMessage, "error" | "status">) => boolean;
export declare const isMessageBounced: (message: Pick<LocalMessage, "type" | "moderation" | "moderation_details">) => boolean;
export declare const isMessageBlocked: (message: Pick<LocalMessage, "type" | "moderation" | "moderation_details" | "shadowed">) => boolean;
export declare const isMessageDeleted: (message: LocalMessage) => boolean;
export declare const isMessageEdited: (message: Pick<LocalMessage, "message_text_updated_at">) => boolean;
//# sourceMappingURL=utils.d.ts.map