UNPKG

mediasfu-reactnative-expo

Version:

mediasfu-reactnative-expo – Expo-managed React Native WebRTC SDK for video conferencing, webinars, live streaming, broadcast, screen sharing, whiteboard, chat, recording, live subtitles, translation, and AI agent rooms on iOS, Android, and web. Prebuilt r

101 lines (100 loc) 4.88 kB
import React from "react"; import { WelcomePageOptions } from "../../components/miscComponents/WelcomePage"; import { SeedData, PreJoinPageOptions, CreateMediaSFURoomOptions, JoinMediaSFURoomOptions, JoinRoomOnMediaSFUType, CreateRoomOnMediaSFUType, CustomVideoCardType, CustomAudioCardType, CustomMiniCardType } from "../../@types/types"; export type MediasfuGenericOptions = { PrejoinPage?: (options: PreJoinPageOptions | WelcomePageOptions) => React.ReactNode; localLink?: string; connectMediaSFU?: boolean; credentials?: { apiUserName: string; apiKey: string; }; useLocalUIMode?: boolean; seedData?: SeedData; useSeed?: boolean; imgSrc?: string; sourceParameters?: { [key: string]: any; }; updateSourceParameters?: (data: { [key: string]: any; }) => void; returnUI?: boolean; noUIPreJoinOptions?: CreateMediaSFURoomOptions | JoinMediaSFURoomOptions; autoProceedPreJoin?: boolean; joinMediaSFURoom?: JoinRoomOnMediaSFUType; createMediaSFURoom?: CreateRoomOnMediaSFUType; customVideoCard?: CustomVideoCardType; customAudioCard?: CustomAudioCardType; customMiniCard?: CustomMiniCardType; customComponent?: React.FC<{ parameters: any; }>; containerStyle?: object; useModernUI?: boolean; uiOverrides?: import("../../@types/types").MediasfuUICustomOverrides; }; /** * MediasfuGeneric component optimizes the media experience for conferences. * Participants can share media (audio, video, screen share) with each other. * Participants can chat with each other and engage in polls and breakout rooms, share screens, and more during the conference. * * @typedef {Object} MediasfuGenericOptions * @property {function} [PrejoinPage=WelcomePage] - Function to render the prejoin page. * @property {string} [localLink=""] - Local link for the media server (if using Community Edition). * @property {boolean} [connectMediaSFU=true] - Flag to connect to the MediaSFU server (if using Community Edition and still need to connect to the server) * @property {Object} [credentials={ apiUserName: "", apiKey: "" }] - API credentials. * @property {boolean} [useLocalUIMode=false] - Flag to use local UI mode. * @property {SeedData} [seedData={}] - Seed data for initial state. * @property {boolean} [useSeed=false] - Flag to use seed data. * @property {string} [imgSrc="https://mediasfu.com/images/logo192.png"] - Image source URL. * @property {Object} [sourceParameters={}] - Source parameters. * @property {function} [updateSourceParameters] - Function to update source parameters. * @property {boolean} [returnUI=true] - Flag to return the UI. * @property {CreateMediaSFURoomOptions | JoinMediaSFURoomOptions} [noUIPreJoinOptions] - Options for the prejoin page. * @property {JoinRoomOnMediaSFUType} [joinMediaSFURoom] - Function to join a room on MediaSFU. * @property {CreateRoomOnMediaSFUType} [createMediaSFURoom] - Function to create a room on MediaSFU. * * @typedef {Object} SeedData - Data structure to populate initial state in the MediasfuGeneric. * @property {string} [member] - The member name. * @property {string} [host] - The host name. * @property {EventType} [eventType] - The type of event. * @property {Participant[]} [participants] - The list of participants. * @property {Message[]} [messages] - The list of messages. * @property {Poll[]} [polls] - The list of polls. * @property {BreakoutParticipant[][]} [breakoutRooms] - The list of breakout rooms. * @property {Request[]} [requests] - The list of requests. * @property {WaitingRoomParticipant[]} [waitingList] - The list of waiting room participants. * @property {WhiteboardUser[]} [whiteboardUsers] - The list of whiteboard users. * * @component * @param {MediasfuGenericOptions} props - Component properties. * @returns {React.FC<MediasfuGenericOptions>} - React functional component. * * @example * ```tsx * <MediasfuGeneric * PrejoinPage={WelcomePage} * credentials={{ apiUserName: "username", apiKey: "apikey" }} * useLocalUIMode={false} * seedData={{}} * useSeed={false} * imgSrc="https://mediasfu.com/images/logo192.png" * sourceParameters={{ key: value }} * updateSourceParameters={updateSourceParameters} * returnUI={true} * noUIPreJoinOptions={customPreJoinOptions} * joinMediaSFURoom={joinRoomOnMediaSFU} * createMediaSFURoom={createRoomOnMediaSFU} * /> * ``` * * @description * This component handles the generic functionalities for MediaSFU, including joining rooms, * managing participants, and handling media streams. It uses various hooks and methods to * manage state and perform actions such as joining a room, updating initial values, and * handling media streams. * */ declare const MediasfuGeneric: React.FC<MediasfuGenericOptions>; export default MediasfuGeneric;