Interface ParticipantsModalOptions

interface ParticipantsModalOptions {
    isParticipantsModalVisible: boolean;
    onParticipantsClose: (() => void);
    onParticipantsFilterChange: ((filter: string) => void);
    participantsCounter: number;
    onMuteParticipants?: ((options: MuteParticipantsOptions) => Promise<void>);
    onMessageParticipants?: ((options: MessageParticipantsOptions) => void);
    onRemoveParticipants?: ((options: RemoveParticipantsOptions) => Promise<void>);
    RenderParticipantList?: ComponentType<any>;
    RenderParticipantListOthers?: ComponentType<any>;
    parameters: ParticipantsModalParameters;
    backgroundColor?: string;
    position?: string;
    title?: ReactNode;
    overlayProps?: HTMLAttributes<HTMLDivElement>;
    contentProps?: HTMLAttributes<HTMLDivElement>;
    headerProps?: HTMLAttributes<HTMLDivElement>;
    titleProps?: HTMLAttributes<HTMLDivElement>;
    badgeWrapperProps?: HTMLAttributes<HTMLDivElement>;
    badgeProps?: HTMLAttributes<HTMLSpanElement>;
    closeButtonProps?: ButtonHTMLAttributes<HTMLButtonElement>;
    closeIconComponent?: ReactNode;
    bodyProps?: HTMLAttributes<HTMLDivElement>;
    searchWrapperProps?: HTMLAttributes<HTMLDivElement>;
    searchInputProps?: InputHTMLAttributes<HTMLInputElement>;
    listsWrapperProps?: HTMLAttributes<HTMLDivElement>;
    moderatorListProps?: HTMLAttributes<HTMLDivElement>;
    attendeeListProps?: HTMLAttributes<HTMLDivElement>;
    emptyState?: ReactNode | ((context: {
        counter: number;
    }) => ReactNode);
    renderHeader?: ((options: {
        defaultHeader: ReactNode;
        counter: number;
        onClose: (() => void);
    }) => ReactNode);
    renderSearch?: ((options: {
        defaultSearch: ReactNode;
        onFilter: ((value: string) => void);
    }) => ReactNode);
    renderLists?: ((options: {
        defaultLists: ReactNode;
        participants: Participant[];
        hasModeratorControls: boolean;
    }) => ReactNode);
    renderBody?: ((options: {
        defaultBody: ReactNode;
        counter: number;
    }) => ReactNode);
    renderContent?: ((options: {
        defaultContent: ReactNode;
        counter: number;
    }) => ReactNode);
}

Properties

isParticipantsModalVisible: boolean
onParticipantsClose: (() => void)
onParticipantsFilterChange: ((filter: string) => void)
participantsCounter: number
onMuteParticipants?: ((options: MuteParticipantsOptions) => Promise<void>)

Type declaration

    • (options): Promise<void>
    • Mutes a participant in a media session if the current member has the necessary permissions.

      Parameters

      Returns Promise<void>

      muteParticipants({
      socket,
      coHostResponsibility: [{ name: "media", value: true }],
      participant: { id: "123", name: "John Doe", muted: false, islevel: "1" },
      member: "currentMember",
      islevel: "2",
      showAlert: (alert) => console.log(alert.message),
      coHost: "coHostMember",
      roomName: "room1",
      });
onMessageParticipants?: ((options: MessageParticipantsOptions) => void)

Type declaration

    • (options): void
    • Sends a direct message to a participant if the current member has the necessary permissions.

      Parameters

      Returns void

      messageParticipants({
      coHostResponsibility: [{ name: "chat", value: true }],
      participant: { name: "John Doe", islevel: "1" },
      member: "currentMember",
      islevel: "2",
      showAlert: (alert) => console.log(alert.message),
      coHost: "coHostMember",
      updateIsMessagesModalVisible: (isVisible) => setMessagesModalVisible(isVisible),
      updateDirectMessageDetails: (participant) => setDirectMessageDetails(participant),
      updateStartDirectMessage: (start) => setStartDirectMessage(start),
      });
onRemoveParticipants?: ((options: RemoveParticipantsOptions) => Promise<void>)

Type declaration

    • (options): Promise<void>
    • Removes a participant from the room if the user has the necessary permissions.

      Parameters

      Returns Promise<void>

      removeParticipants({
      coHostResponsibility: [{ name: "participants", value: true }],
      participant: { id: "123", name: "John Doe", islevel: "1" },
      member: "currentMember",
      islevel: "2",
      showAlert: (alert) => console.log(alert.message),
      coHost: "coHostMember",
      participants: [{ id: "123", name: "John Doe", islevel: "1" }],
      socket,
      roomName: "room1",
      updateParticipants: (updatedParticipants) => console.log(updatedParticipants),
      });
RenderParticipantList?: ComponentType<any>
RenderParticipantListOthers?: ComponentType<any>
backgroundColor?: string
position?: string
title?: ReactNode
overlayProps?: HTMLAttributes<HTMLDivElement>
contentProps?: HTMLAttributes<HTMLDivElement>
headerProps?: HTMLAttributes<HTMLDivElement>
titleProps?: HTMLAttributes<HTMLDivElement>
badgeWrapperProps?: HTMLAttributes<HTMLDivElement>
badgeProps?: HTMLAttributes<HTMLSpanElement>
closeButtonProps?: ButtonHTMLAttributes<HTMLButtonElement>
closeIconComponent?: ReactNode
bodyProps?: HTMLAttributes<HTMLDivElement>
searchWrapperProps?: HTMLAttributes<HTMLDivElement>
searchInputProps?: InputHTMLAttributes<HTMLInputElement>
listsWrapperProps?: HTMLAttributes<HTMLDivElement>
moderatorListProps?: HTMLAttributes<HTMLDivElement>
attendeeListProps?: HTMLAttributes<HTMLDivElement>
emptyState?: ReactNode | ((context: {
    counter: number;
}) => ReactNode)
renderHeader?: ((options: {
    defaultHeader: ReactNode;
    counter: number;
    onClose: (() => void);
}) => ReactNode)
renderSearch?: ((options: {
    defaultSearch: ReactNode;
    onFilter: ((value: string) => void);
}) => ReactNode)
renderLists?: ((options: {
    defaultLists: ReactNode;
    participants: Participant[];
    hasModeratorControls: boolean;
}) => ReactNode)
renderBody?: ((options: {
    defaultBody: ReactNode;
    counter: number;
}) => ReactNode)
renderContent?: ((options: {
    defaultContent: ReactNode;
    counter: number;
}) => ReactNode)