mediasfu-reactjs
Version:
MediaSFU Prebuilt ReactJS SDK - Compatible with React 18 & 19, TypeScript & JavaScript
70 lines • 4.98 kB
TypeScript
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