/// import { IContextualMenuItem, IContextualMenuItemStyles } from '@fluentui/react'; import { BaseCustomStyles, OnRenderAvatarCallback, ParticipantListParticipant } from '../types'; import { ParticipantItemStyles } from './ParticipantItem'; /** * Styles for the {@link ParticipantList} {@link ParticipantItem}. * * @public */ export interface ParticipantListItemStyles extends ParticipantItemStyles { /** Styles applied to the sub-menu of the {@link ParticipantList} {@link ParticipantItem}. */ participantSubMenuItemsStyles?: IContextualMenuItemStyles; } /** * Styles for the {@link ParticipantList}. * * @public */ export interface ParticipantListStyles extends BaseCustomStyles { /** Styles for the {@link ParticipantList} {@link ParticipantItem}. */ participantItemStyles?: ParticipantListItemStyles; } /** * A callback for providing custom menu items for each participant in {@link ParticipantList}. * * @public */ export type ParticipantMenuItemsCallback = (participantUserId: string, userId?: string, defaultMenuItems?: IContextualMenuItem[]) => IContextualMenuItem[]; /** * Props for {@link ParticipantList}. * * @public */ export type ParticipantListProps = { /** Participants in user call or chat */ participants: ParticipantListParticipant[]; /** User ID of user */ myUserId?: string; /** * If set to `true`, excludes the local participant from the participant list with use of `myUserId` props (required in this case). * * @defaultValue `false` */ excludeMe?: boolean; /** Optional callback to render each participant. If no callback is provided, each participant will be rendered with `ParticipantItem` */ onRenderParticipant?: (participant: ParticipantListParticipant) => JSX.Element | null; /** Optional callback to render the avatar for each participant. This property will have no effect if `onRenderParticipant` is assigned. */ onRenderAvatar?: OnRenderAvatarCallback; /** Optional callback to render the context menu for each participant */ onRemoveParticipant?: (userId: string) => void; /** Optional callback to render custom menu items for each participant. */ onFetchParticipantMenuItems?: ParticipantMenuItemsCallback; /** Optional callback when rendered ParticipantItem is clicked */ onParticipantClick?: (participant?: ParticipantListParticipant) => void; /** Optional callback to render a context menu to mute a participant */ onMuteParticipant?: (userId: string) => Promise; styles?: ParticipantListStyles; /** Optional value to determine if the tooltip should be shown for participants or not */ showParticipantOverflowTooltip?: boolean; /** Optional aria-labelledby prop that prefixes each ParticipantItem aria-label */ participantAriaLabelledBy?: string; /** List of pinned participants */ pinnedParticipants?: string[]; }; /** * Component to render all calling or chat participants. * * By default, each participant is rendered with {@link ParticipantItem}. See {@link ParticipantListProps.onRenderParticipant} to override. * * @public */ export declare const ParticipantList: (props: ParticipantListProps) => JSX.Element; //# sourceMappingURL=ParticipantList.d.ts.map