@sendbird/uikit-react
Version:
Sendbird UIKit for React: A feature-rich and customizable chat UI kit with messaging, channel management, and user authentication.
40 lines (39 loc) • 2.15 kB
TypeScript
import React, { ReactElement } from 'react';
import { GroupChannel } from '@sendbird/chat/groupChannel';
import { OpenChannel } from '@sendbird/chat/openChannel';
import { SendableMessageType } from '../../utils';
import { type PrebuildMenuItemPropsType, TriggerIconProps } from './menuItems/MessageMenuItems';
import { ReplyType } from '../../types';
export type RenderMenuItemsParams = {
items: {
CopyMenuItem: (props: PrebuildMenuItemPropsType) => ReactElement;
ReplyMenuItem: (props: PrebuildMenuItemPropsType) => ReactElement;
ThreadMenuItem: (props: PrebuildMenuItemPropsType) => ReactElement;
OpenInChannelMenuItem: (props: PrebuildMenuItemPropsType) => ReactElement;
EditMenuItem: (props: PrebuildMenuItemPropsType) => ReactElement;
ResendMenuItem: (props: PrebuildMenuItemPropsType) => ReactElement;
DeleteMenuItem: (props: PrebuildMenuItemPropsType) => ReactElement;
MarkAsUnreadMenuItem: (props: PrebuildMenuItemPropsType) => ReactElement;
};
};
export interface MessageMenuProps {
className?: string;
message: SendableMessageType;
channel: GroupChannel | OpenChannel | null;
isByMe?: boolean;
replyType?: ReplyType;
renderTrigger?: (params: TriggerIconProps) => ReactElement;
renderMenuItems?: (params: RenderMenuItemsParams) => ReactElement;
disableDeleteMessage?: boolean;
showEdit?: (bool: boolean) => void;
showRemove?: (bool: boolean) => void;
deleteMessage?: (message: SendableMessageType) => void;
resendMessage?: (message: SendableMessageType) => void;
markAsUnread?: (message: SendableMessageType) => void;
setQuoteMessage?: (message: SendableMessageType) => void;
onReplyInThread?: (props: {
message: SendableMessageType;
}) => void;
onMoveToParentMessage?: () => void;
}
export declare const MessageMenu: ({ className, message, channel, isByMe, replyType, renderTrigger, renderMenuItems, disableDeleteMessage, showEdit, showRemove, deleteMessage, resendMessage, markAsUnread, setQuoteMessage, onReplyInThread, onMoveToParentMessage, }: MessageMenuProps) => React.JSX.Element;