MainAspectComponent dynamically adjusts its dimensions based on window size and user-defined fractions, updating screen size states (wide, medium, small) based on container width.

This component supports responsive layouts by adjusting its height and width based on fractions of the window size. It also provides callbacks to update screen size states and toggles dimensions based on control visibility.

import React from 'react';
import { MainAspectComponent } from 'mediasfu-reactnative-expo';

function App() {
return (
<MainAspectComponent
backgroundColor="lightgray"
containerWidthFraction={0.8}
containerHeightFraction={0.8}
showControls={true}
updateIsWideScreen={(isWide) => console.log("Wide screen:", isWide)}
updateIsMediumScreen={(isMedium) => console.log("Medium screen:", isMedium)}
updateIsSmallScreen={(isSmall) => console.log("Small screen:", isSmall)}
>
<Text>Responsive Component</Text>
</MainAspectComponent>
);
}

export default App;

Properties

propTypes?: WeakValidationMap<MainAspectComponentOptions>

Used to declare the types of the props accepted by the component. These types will be checked during rendering and in development only.

We recommend using TypeScript instead of checking prop types at runtime.

contextTypes?: ValidationMap<any>

Lets you specify which legacy context is consumed by this component.

defaultProps?: Partial<MainAspectComponentOptions>

Used to define default values for the props accepted by the component.

type Props = { name?: string }

const MyComponent: FC<Props> = (props) => {
return <div>{props.name}</div>
}

MyComponent.defaultProps = {
name: 'John Doe'
}
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'