Function MediaSettingsModal

MediaSettingsModal component provides a modal interface for users to configure media settings such as selecting video and audio input devices.

import React, { useState } from 'react';
import { MediaSettingsModal } from 'mediasfu-reactjs';
import { io } from 'socket.io-client';

const App = () => {
const socket = io("http://localhost:3000");
const [isMediaModalVisible, setIsMediaModalVisible] = useState(true);

const handleMediaSettingsClose = () => setIsMediaModalVisible(false);
const handleSwitchCamera = async (options) => console.log("Camera switched", options);
const handleSwitchVideo = async (options) => console.log("Video input switched", options);
const handleSwitchAudio = async (options) => console.log("Audio input switched", options);

const parameters = {
userDefaultVideoInputDevice: "default",
videoInputs: [
{ deviceId: "camera1", label: "Front Camera" },
{ deviceId: "camera2", label: "Rear Camera" }
],
audioInputs: [
{ deviceId: "mic1", label: "Built-in Microphone" },
{ deviceId: "mic2", label: "External Microphone" }
],
userDefaultAudioInputDevice: "default",
isBackgroundModalVisible: false,
updateIsBackgroundModalVisible: (visible) => console.log("Background modal visibility:", visible),
getUpdatedAllParams: () => console.log("Updated all parameters"),
};

return (
<MediaSettingsModal
isMediaSettingsModalVisible={isMediaModalVisible}
onMediaSettingsClose={handleMediaSettingsClose}
switchCameraOnPress={handleSwitchCamera}
switchVideoOnPress={handleSwitchVideo}
switchAudioOnPress={handleSwitchAudio}
parameters={parameters}
position="topRight"
backgroundColor="#83c0e9"
/>
);
};

export default App;

Properties

propTypes?: any

Ignored by React.

Only kept in types for backwards compatibility. Will be removed in a future major release.

displayName?: string

Used in debugging messages. You might want to set it explicitly if you want to display a different name for debugging purposes.


const MyComponent: FC = () => {
return <div>Hello!</div>
}

MyComponent.displayName = 'MyAwesomeComponent'