MediaSFU ReactJS
    Preparing search index...

    Interface MessagesModalOptions

    interface MessagesModalOptions {
        isMessagesModalVisible: boolean;
        onMessagesClose: () => void;
        onSendMessagePress?: (options: SendMessageOptions) => Promise<void>;
        messages: Message[];
        eventType: EventType;
        member: string;
        islevel: string;
        coHostResponsibility: CoHostResponsibility[];
        coHost: string;
        startDirectMessage: boolean;
        directMessageDetails: Participant | null;
        updateStartDirectMessage: (start: boolean) => void;
        updateDirectMessageDetails: (participant: Participant | null) => void;
        showAlert?: ShowAlert;
        roomName: string;
        socket: Socket;
        chatSetting: string;
        position?: string;
        backgroundColor?: string;
        activeTabBackgroundColor?: string;
        isDarkMode?: boolean;
        enableGlassmorphism?: boolean;
        renderMode?: ModalRenderMode;
        title?: ReactNode;
        overlayProps?: HTMLAttributes<HTMLDivElement>;
        contentProps?: HTMLAttributes<HTMLDivElement>;
        headerProps?: HTMLAttributes<HTMLDivElement>;
        titleProps?: HTMLAttributes<HTMLDivElement>;
        tabListProps?: HTMLAttributes<HTMLDivElement>;
        tabButtonProps?: ButtonHTMLAttributes<HTMLButtonElement>;
        closeButtonProps?: ButtonHTMLAttributes<HTMLButtonElement>;
        closeIconComponent?: ReactNode;
        bodyProps?: HTMLAttributes<HTMLDivElement>;
        directPanelWrapperProps?: HTMLAttributes<HTMLDivElement>;
        groupPanelWrapperProps?: HTMLAttributes<HTMLDivElement>;
        emptyState?:
            | ReactNode
            | ((context: { type: "group" | "direct" }) => ReactNode);
        renderHeader?: (
            options: {
                defaultHeader: ReactNode;
                activeTab: "group" | "direct";
                onClose: () => void;
            },
        ) => ReactNode;
        renderTabs?: (
            options: {
                defaultTabs: ReactNode;
                activeTab: "group" | "direct";
                switchToDirect: () => void;
                switchToGroup: () => void;
            },
        ) => ReactNode;
        renderTabButton?: (
            options: {
                type: "group" | "direct";
                isActive: boolean;
                defaultButton: ReactNode;
                switchTo: () => void;
            },
        ) => ReactNode;
        renderPanels?: (
            options: { defaultPanels: ReactNode; activeTab: "group" | "direct" },
        ) => ReactNode;
        renderBody?: (
            options: { defaultBody: ReactNode; activeTab: "group" | "direct" },
        ) => ReactNode;
        renderContent?: (
            options: { defaultContent: ReactNode; activeTab: "group" | "direct" },
        ) => ReactNode;
    }
    Index

    Properties

    isMessagesModalVisible: boolean
    onMessagesClose: () => void
    onSendMessagePress?: (options: SendMessageOptions) => Promise<void>
    messages: Message[]
    eventType: EventType
    member: string
    islevel: string
    coHostResponsibility: CoHostResponsibility[]
    coHost: string
    startDirectMessage: boolean
    directMessageDetails: Participant | null
    updateStartDirectMessage: (start: boolean) => void
    updateDirectMessageDetails: (participant: Participant | null) => void
    showAlert?: ShowAlert
    roomName: string
    socket: Socket
    chatSetting: string
    position?: string
    backgroundColor?: string
    activeTabBackgroundColor?: string
    isDarkMode?: boolean

    Theme control - whether dark mode is active

    enableGlassmorphism?: boolean

    Enable glassmorphism effects (modern UI)

    renderMode?: ModalRenderMode

    Render mode: modal (default overlay), sidebar (inline for desktop), inline (no wrapper)

    title?: ReactNode
    overlayProps?: HTMLAttributes<HTMLDivElement>
    contentProps?: HTMLAttributes<HTMLDivElement>
    headerProps?: HTMLAttributes<HTMLDivElement>
    titleProps?: HTMLAttributes<HTMLDivElement>
    tabListProps?: HTMLAttributes<HTMLDivElement>
    tabButtonProps?: ButtonHTMLAttributes<HTMLButtonElement>
    closeButtonProps?: ButtonHTMLAttributes<HTMLButtonElement>
    closeIconComponent?: ReactNode
    bodyProps?: HTMLAttributes<HTMLDivElement>
    directPanelWrapperProps?: HTMLAttributes<HTMLDivElement>
    groupPanelWrapperProps?: HTMLAttributes<HTMLDivElement>
    emptyState?: ReactNode | ((context: { type: "group" | "direct" }) => ReactNode)
    renderHeader?: (
        options: {
            defaultHeader: ReactNode;
            activeTab: "group" | "direct";
            onClose: () => void;
        },
    ) => ReactNode
    renderTabs?: (
        options: {
            defaultTabs: ReactNode;
            activeTab: "group" | "direct";
            switchToDirect: () => void;
            switchToGroup: () => void;
        },
    ) => ReactNode
    renderTabButton?: (
        options: {
            type: "group" | "direct";
            isActive: boolean;
            defaultButton: ReactNode;
            switchTo: () => void;
        },
    ) => ReactNode
    renderPanels?: (
        options: { defaultPanels: ReactNode; activeTab: "group" | "direct" },
    ) => ReactNode
    renderBody?: (
        options: { defaultBody: ReactNode; activeTab: "group" | "direct" },
    ) => ReactNode
    renderContent?: (
        options: { defaultContent: ReactNode; activeTab: "group" | "direct" },
    ) => ReactNode