Const// Basic usage - Display menu modal with default settings
import React, { useState } from 'react';
import { MenuModal } from 'mediasfu-reactnative-expo';
function MeetingControls() {
const [menuVisible, setMenuVisible] = useState(false);
return (
<>
<Button title="Menu" onPress={() => setMenuVisible(true)} />
<MenuModal
isVisible={menuVisible}
onClose={() => setMenuVisible(false)}
backgroundColor="#83c0e9"
position="bottomRight"
roomName="MeetingRoom123"
adminPasscode="456789"
islevel="2"
eventType="conference"
shareButtons={true}
/>
</>
);
}
// With custom action buttons
<MenuModal
isVisible={showMenu}
onClose={() => setShowMenu(false)}
backgroundColor="#1a1a2e"
position="topRight"
roomName="TeamStandup"
adminPasscode="secret123"
islevel="1"
eventType="webinar"
customButtons={[
{
action: () => console.log('Settings clicked'),
show: true,
backgroundColor: '#4CAF50',
icon: 'cog',
text: 'Settings',
},
{
action: () => console.log('Help clicked'),
show: true,
backgroundColor: '#2196F3',
icon: 'question-circle',
text: 'Help',
},
]}
shareButtons={true}
localLink="https://meet.example.com/room123"
/>
// Using uiOverrides for complete modal replacement
import { MyCustomMenuModal } from './MyCustomMenuModal';
const sessionConfig = {
credentials: { apiKey: 'your-api-key' },
uiOverrides: {
menuModalComponent: {
component: MyCustomMenuModal,
injectedProps: {
theme: 'dark',
compactMode: true,
},
},
},
};
// MyCustomMenuModal.tsx
export const MyCustomMenuModal = (props: MenuModalOptions & { theme: string; compactMode: boolean }) => {
return (
<Modal visible={props.isVisible} onRequestClose={props.onClose}>
<View style={{ backgroundColor: props.theme === 'dark' ? '#000' : '#fff' }}>
<Text>Room: {props.roomName}</Text>
<Text>Passcode: {props.adminPasscode}</Text>
<Button title="Close" onPress={props.onClose} />
</View>
</Modal>
);
};
MenuModal - Meeting menu with room info, custom actions, and share options
MenuModal is a comprehensive React Native modal component that displays meeting information (room name, passcode), custom action buttons, and sharing capabilities. It's typically accessed from a menu/hamburger button in the main UI.
Key Features:
UI Customization: This component can be replaced via
uiOverrides.menuModalComponentto provide a completely custom menu modal implementation.