MediaSFU React Native
    Preparing search index...

    Variable MainScreenComponentConst

    MainScreenComponent: React.FC<MainScreenComponentOptions> = ...

    MainScreenComponent calculates media tile dimensions for the main and secondary regions and applies them to children that accept mainSize and isWideScreen props. Override hooks provide full control over content and container rendering.

    • Dynamically calculates main/other region sizes based on mainSize percentage
    • Automatically determines wide screen status (≥768px or aspect > 1.5:1)
    • Passes dimension props to compatible children (mainSize, isWideScreen)
    • Re-renders on window dimension changes
    • Supports stacking or side-by-side layout modes
    • Stack mode (doStack=true): Splits screen between main and secondary regions
    • Single mode (doStack=false): Allocates full screen to main region
    • Container provides structural grouping for main regions
    • Children should include appropriate accessibility labels
    // Basic split screen layout
    <MainScreenComponent
    mainSize={70}
    doStack
    showControls
    componentSizes={componentSizes}
    updateComponentSizes={setComponentSizes}
    >
    <MainGridComponent mainSize={70} />
    <OtherGridComponent mainSize={70} />
    </MainScreenComponent>
    // Full screen main view
    <MainScreenComponent
    mainSize={100}
    doStack={false}
    showControls={false}
    containerWidthFraction={0.95}
    containerHeightFraction={0.9}
    defaultFraction={1}
    componentSizes={sizes}
    updateComponentSizes={handleSizeUpdate}
    style={{ backgroundColor: '#000' }}
    >
    <PresentationView />
    </MainScreenComponent>
    // With custom render override
    <MainScreenComponent
    mainSize={60}
    doStack
    showControls
    componentSizes={sizes}
    updateComponentSizes={updateSizes}
    renderContainer={({ defaultContainer, dimensions }) => (
    <Animated.View
    style={{
    transform: [{ translateY: slideAnim }],
    width: dimensions.width,
    height: dimensions.height,
    }}
    >
    {defaultContainer}
    </Animated.View>
    )}
    >
    <MainGrid />
    <AudienceGrid />
    </MainScreenComponent>