/// import { IContextualMenuStyles, IContextualMenuItemStyles } from '@fluentui/react'; import { ParticipantListProps, ParticipantListStyles, ParticipantMenuItemsCallback } from './ParticipantList'; import { ControlBarButtonProps, ControlBarButtonStyles } from './ControlBarButton'; import { CommunicationParticipant } from '../types/CommunicationParticipant'; import { OnRenderAvatarCallback } from '../types/OnRender'; import { ParticipantListParticipant } from '../types'; /** * Styles for the {@link ParticipantsButton} menu. * * @public */ export interface ParticipantsButtonContextualMenuStyles extends IContextualMenuStyles { /** Styles for the {@link ParticipantsButton} menu items. */ menuItemStyles?: IContextualMenuItemStyles; /** Styles for the {@link ParticipantList} menu item inside the {@link ParticipantsButton} menu. */ participantListStyles?: ParticipantListStyles; } /** * Styles Props for {@link ParticipantsButton}. * * @public */ export interface ParticipantsButtonStyles extends ControlBarButtonStyles { /** Styles of the {@link ParticipantsButton} menu flyout */ menuStyles?: Partial; } /** * Strings of {@link ParticipantsButton} that can be overridden. * * @public */ export interface ParticipantsButtonStrings { /** * Label of button */ label: string; /** * Button tooltip content. */ tooltipContent?: string; /** * Aria label for button accessibility announcement */ ariaLabel?: string; /** * Header of menu pop up */ menuHeader: string; /** * Label of menu button to show list of participants. Placeholders: [numParticipants] */ participantsListButtonLabel: string; /** * Label of menu button to copy invite link */ copyInviteLinkButtonLabel: string; /** * Label of menu button to mute all participants */ muteAllButtonLabel: string; /** * Narrator announcement for when the invite link has been copied by the user to the clipboard */ copyInviteLinkActionedAriaLabel: string; } /** * Props for {@link ParticipantsButton}. * * @public */ export interface ParticipantsButtonProps extends ControlBarButtonProps { /** * 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; /** * Callback to render each participant. If no callback is provided, each participant will be rendered with `ParticipantItem` */ onRenderParticipant?: (participant: CommunicationParticipant) => JSX.Element | null; /** * Callback to render the avatar for each participant. This property will have no effect if `onRenderParticipant` is assigned. */ onRenderAvatar?: OnRenderAvatarCallback; /** * Callback to render the context menu for each participant */ onRemoveParticipant?: (userId: string) => void; /** * Callback to render custom menu items for each participant. */ onFetchParticipantMenuItems?: ParticipantMenuItemsCallback; /** * Optional callback to render a custom participant list. */ onRenderParticipantList?: (props: ParticipantListProps) => JSX.Element | null; /** * Allows users to pass an object containing custom CSS styles. * @Example * ``` * * ``` */ styles?: ParticipantsButtonStyles; /** * URL to invite new participants to the current call */ callInvitationURL?: string; /** * CallBack to mute all remote participants */ onMuteAll?: () => void; /** * Optional strings to override in component */ strings?: Partial; /** Optional value to determine if the tooltip should be shown for participants or not */ showParticipantOverflowTooltip?: boolean; } /** * A button to show a menu with calling or chat participants. * * Can be used with {@link ControlBar}. * * This button contains dropdown menu items defined through its property `menuProps`. By default, it can display the number of remote participants with the full list * as sub-menu and an option to mute all participants, as well as a copy-to-clipboard button to copy the call invitation URL. * This `menuProps` can be fully redefined and its property is of type [IContextualMenuProps](https://developer.microsoft.com/fluentui#/controls/web/contextualmenu#IContextualMenuProps). * * @public */ export declare const ParticipantsButton: (props: ParticipantsButtonProps) => JSX.Element; //# sourceMappingURL=ParticipantsButton.d.ts.map