UNPKG

mediasfu-reactjs

Version:

MediaSFU Prebuilt ReactJS SDK - Compatible with React 18 & 19, TypeScript & JavaScript

70 lines 4.98 kB
import { ShowAlert, Request, RequestResponse } from "../../@types/types"; export interface HostRequestResponseOptions { requestResponse: RequestResponse; showAlert?: ShowAlert; requestList: Request[]; updateRequestList: (requestList: Request[]) => void; updateMicAction: (action: boolean) => void; updateVideoAction: (action: boolean) => void; updateScreenAction: (action: boolean) => void; updateChatAction: (action: boolean) => void; updateAudioRequestState: (state: string | null) => void; updateVideoRequestState: (state: string | null) => void; updateScreenRequestState: (state: string | null) => void; updateChatRequestState: (state: string | null) => void; updateAudioRequestTime: (time: number) => void; updateVideoRequestTime: (time: number) => void; updateScreenRequestTime: (time: number) => void; updateChatRequestTime: (time: number) => void; updateRequestIntervalSeconds: number; } export type HostRequestResponseType = (options: HostRequestResponseOptions) => Promise<void>; /** * Handles a host's response to a participant request, updating the request list and performing actions based on the response. * * @param {HostRequestResponseOptions} options - The options for handling the host's response to the participant request. * @param {RequestResponse} options.requestResponse - The host's response to the request. * @param {Function} [options.showAlert] - Optional function to show alerts. * @param {Request[]} options.requestList - The current list of participant requests. * @param {Function} options.updateRequestList - Function to update the request list. * @param {Function} options.updateMicAction - Function to update the microphone action state. * @param {Function} options.updateVideoAction - Function to update the video action state. * @param {Function} options.updateScreenAction - Function to update the screen action state. * @param {Function} options.updateChatAction - Function to update the chat action state. * @param {Function} options.updateAudioRequestState - Function to update the audio request state. * @param {Function} options.updateVideoRequestState - Function to update the video request state. * @param {Function} options.updateScreenRequestState - Function to update the screen request state. * @param {Function} options.updateChatRequestState - Function to update the chat request state. * @param {Function} options.updateAudioRequestTime - Function to set a cooldown for new audio requests. * @param {Function} options.updateVideoRequestTime - Function to set a cooldown for new video requests. * @param {Function} options.updateScreenRequestTime - Function to set a cooldown for new screenshare requests. * @param {Function} options.updateChatRequestTime - Function to set a cooldown for new chat requests. * @param {number} options.updateRequestIntervalSeconds - The interval in seconds to wait before allowing another request of the same type. * * @returns {Promise<void>} A promise that resolves when the host's response has been processed. * * @example * ```typescript * await hostRequestResponse({ * requestResponse: { id: "req123", type: "fa-video", action: "accepted" }, * showAlert: (alertOptions) => console.log(alertOptions.message), * requestList: [{ id: "req123", icon: "fa-video", name: "Video Request" }], * updateRequestList: (list) => console.log("Updated request list", list), * updateMicAction: (state) => console.log("Mic action:", state), * updateVideoAction: (state) => console.log("Video action:", state), * updateScreenAction: (state) => console.log("Screen action:", state), * updateChatAction: (state) => console.log("Chat action:", state), * updateAudioRequestState: (state) => console.log("Audio request state:", state), * updateVideoRequestState: (state) => console.log("Video request state:", state), * updateScreenRequestState: (state) => console.log("Screen request state:", state), * updateChatRequestState: (state) => console.log("Chat request state:", state), * updateAudioRequestTime: (time) => console.log("Audio request cooldown:", time), * updateVideoRequestTime: (time) => console.log("Video request cooldown:", time), * updateScreenRequestTime: (time) => console.log("Screenshare request cooldown:", time), * updateChatRequestTime: (time) => console.log("Chat request cooldown:", time), * updateRequestIntervalSeconds: 30, * }); * ``` */ export declare const hostRequestResponse: ({ requestResponse, showAlert, requestList, updateRequestList, updateMicAction, updateVideoAction, updateScreenAction, updateChatAction, updateAudioRequestState, updateVideoRequestState, updateScreenRequestState, updateChatRequestState, updateAudioRequestTime, updateVideoRequestTime, updateScreenRequestTime, updateChatRequestTime, updateRequestIntervalSeconds, }: HostRequestResponseOptions) => Promise<void>; //# sourceMappingURL=hostRequestResponse.d.ts.map