communication-react-19
Version:
React library for building modern communication user experiences utilizing Azure Communication Services (React 19 compatible fork)
54 lines • 2.24 kB
TypeScript
/// <reference types="react" />
import { VideoGalleryParticipant, VideoGalleryRemoteParticipant } from '../../../types';
import { ReactionResources } from '../../..';
import { VideoGalleryLayout } from '../../VideoGallery';
/**
* Arguments used to determine a {@link OrganizedParticipantsResult}
* @private
*/
export interface OrganizedParticipantsArgs {
remoteParticipants: VideoGalleryRemoteParticipant[];
localParticipant?: VideoGalleryParticipant;
dominantSpeakers?: string[];
maxGridParticipants?: number;
maxOverflowGalleryDominantSpeakers?: number;
isScreenShareActive?: boolean;
pinnedParticipantUserIds?: string[];
layout?: VideoGalleryLayout;
spotlightedParticipantUserIds?: string[];
previousGridParticipants?: VideoGalleryRemoteParticipant[];
previousOverflowParticipants?: VideoGalleryRemoteParticipant[];
}
/**
* A result that defines grid participants and overflow gallery participants in the VideoGallery
* @private
*/
export interface OrganizedParticipantsResult {
gridParticipants: VideoGalleryParticipant[];
overflowGalleryParticipants: VideoGalleryParticipant[];
}
/**
* @private
*/
export declare const MAX_GRID_PARTICIPANTS_NOT_LARGE_GALLERY = 9;
/**
* Hook to determine which participants should be in grid and overflow gallery and their order respectively
* @private
*/
export declare const useOrganizedParticipants: (props: OrganizedParticipantsArgs) => OrganizedParticipantsResult;
/**
* @private
*/
export declare const renderTiles: (gridParticipants: VideoGalleryParticipant[], onRenderRemoteParticipant: (participant: VideoGalleryRemoteParticipant, isVideoParticipant?: boolean) => JSX.Element, maxRemoteVideoStreams: number, indexesToRender: number[], overflowGalleryParticipants: VideoGalleryParticipant[], dominantSpeakers?: string[]) => {
gridTiles: JSX.Element[];
overflowGalleryTiles: JSX.Element[];
};
/**
* @private
*/
export declare const getEmojiResource: (reactionName: string, reactionResources: ReactionResources) => string | undefined;
/**
* @private
*/
export declare const getEmojiFrameCount: (reactionName: string, reactionResources: ReactionResources) => number;
//# sourceMappingURL=videoGalleryLayoutUtils.d.ts.map