import { StyleRules } from "@material-ui/core"; import { PopoverClassKey, PopoverProps } from "@material-ui/core/Popover"; import { ConversationEmailBinding, EmailRecipientDescriptor, Media } from "@twilio/conversations"; import { MessageState, ParticipantType } from "../../../../state/ConversationState"; import { CSSProps } from "../../../CSSProps"; import { WithIsOpenProp } from "../EmailAccordion/EmailAccordion.definitions"; export interface EmailMessageItemProps { message: MessageState; defaultOpen?: boolean; recipientList: EmailRecipientDescriptor[]; participants: ParticipantType; conversationBindings?: ConversationEmailBinding; isEmailDisabled?: boolean; } export interface EmailMessageItemChildrenProps extends EmailMessageItemProps { avatarUrl?: string; conversationSid: string; } export interface EmailMessageItemImplProps extends EmailMessageItemChildrenProps { } export interface EmailMessageHeaderProps extends WithIsOpenProp { avatarUrl?: string; conversationBindings?: ConversationEmailBinding; participants: ParticipantType; message: MessageState; attachedMedia: Media[]; recipientList: EmailRecipientDescriptor[]; } /** * Properties of the Message bubble * * @typedef EmailFileAttachment.EmailFileAttachmentProps * @property {string} conversationSid - Conversation SID * @property {MessageState} message - An object which represents a single message. * @property {boolean} disabled - Whether component is disabled or not * @property {Media} media - Media file to be represented */ export interface EmailFileAttachmentProps { conversationSid: string; message: MessageState; disabled: boolean; media: Media; } /** * @typedef Theme.EmailMessageItemThemeProps * @property {CSSProps} DateSeparatorLine - Styles for the line for date separators * @private */ export interface EmailMessageItemThemeProps { Wrapper: CSSProps; Header: { Wrapper: CSSProps; MessagePreview: CSSProps; AvatarContainer: CSSProps; Details: CSSProps; DetailsFirstRow: CSSProps; DetailsSecondRow: CSSProps; SubjectRow: CSSProps; Date: CSSProps; MoreActionsMenuContainer: CSSProps; MoreActionsButton: CSSProps; MoreActionsInnerContainer: CSSProps; Popover: Partial>; PopoverActionItem: CSSProps; ThreadPopup: CSSProps; }; Body: { Wrapper: CSSProps; HTMLWrapper: CSSProps; Iframe: CSSProps; FileAttachmentsContainer: CSSProps; FileAttachment: CSSProps; }; }