A grid layout that handles mixed content: participants, screenshares, plugins, and pinned participants. Automatically switches between simple, spotlight, and highlighted grid layouts.
| Property | Type | Required | Default | Description |
|---|---|---|---|---|
meeting |
RealtimeKitClient |
✅ | - | The RealtimeKit meeting instance |
participants |
Peer[] |
✅ | [] |
Array of active participants |
pinnedParticipants |
Peer[] |
✅ | [] |
Array of pinned participants |
screenShareParticipants |
Peer[] |
✅ | [] |
Array of participants sharing their screen |
plugins |
RTKPlugin[] |
✅ | [] |
Array of active plugins |
aspectRatio |
string |
❌ | '16:9' |
Aspect ratio for grid tiles |
config |
UIConfig |
❌ | defaultConfig |
UI configuration object |
gap |
number |
❌ | 8 |
Gap between grid tiles in pixels |
size |
'lg' | 'md' | 'sm' | 'xl' |
❌ | 'sm' |
Size variant |
variant |
'boxed' | 'solid' |
❌ | 'solid' |
Visual style variant |
iconPack |
IconPack |
❌ | defaultIconPack |
Custom icon pack |
states |
States |
❌ | - | UI state object |
t |
RtkI18n |
❌ | - | i18n translation function |
import { RtkMixedGrid } from "@cloudflare/realtimekit-react-native-ui";
function MyComponent() {
return (
<RtkMixedGrid
meeting={meeting}
participants={participants}
pinnedParticipants={[]}
screenShareParticipants={[]}
plugins={[]}
/>
);
}import { RtkMixedGrid } from "@cloudflare/realtimekit-react-native-ui";
function MyComponent() {
return (
<RtkMixedGrid
meeting={meeting}
participants={participants}
pinnedParticipants={pinned}
screenShareParticipants={screenshares}
plugins={activePlugins}
aspectRatio="16:9"
gap={12}
size="md"
/>
);
}