Const// Basic usage with request handling
import React, { useState } from 'react';
import { RequestsModal } from 'mediasfu-reactnative-expo';
import { io } from 'socket.io-client';
const socket = io('https://your-server.com');
const [showRequests, setShowRequests] = useState(false);
const [filter, setFilter] = useState('');
const requests = [
{ id: '1', name: 'John Doe', icon: 'fa-microphone', username: 'john' },
{ id: '2', name: 'Jane Smith', icon: 'fa-video', username: 'jane' },
{ id: '3', name: 'Bob Wilson', icon: 'fa-desktop', username: 'bob' },
];
return (
<RequestsModal
isRequestsModalVisible={showRequests}
onRequestClose={() => setShowRequests(false)}
requestCounter={requests.length}
onRequestFilterChange={setFilter}
requestList={requests}
updateRequestList={(newList) => console.log('Updated:', newList)}
roomName="meeting-room-123"
socket={socket}
parameters={{
getUpdatedAllParams: () => ({ filteredRequestList: requests }),
}}
/>
);
// With custom positioning and request handling
const handleRequestResponse = async (options: RespondToRequestsOptions) => {
await respondToRequests(options);
console.log('Request handled');
};
return (
<RequestsModal
isRequestsModalVisible={isVisible}
onRequestClose={handleClose}
requestCounter={pendingCount}
onRequestFilterChange={handleFilterChange}
onRequestItemPress={handleRequestResponse}
requestList={pendingRequests}
updateRequestList={setPendingRequests}
roomName={roomId}
socket={socketConnection}
parameters={requestParams}
position="bottomLeft"
backgroundColor="#2c3e50"
/>
);
RequestsModal - Participant request management interface
RequestsModal is a React Native component that displays pending participant requests (microphone, video, screenshare) with options to filter, accept, or reject each request. Host users can review and respond to requests in real-time via Socket.io.
Key Features:
UI Customization: This component can be replaced via
uiOverrides.requestsModalto provide a completely custom requests management interface.