UNPKG

@vandrei977/react-native-render-html

Version:

The hackable, full-featured Open Source HTML rendering solution for React Native.

43 lines (37 loc) 928 B
import { ImageStyle } from 'react-native'; import { WebBlockStyles } from '@native-html/transient-render-engine'; import pick from 'ramda/src/pick'; const extractProps = pick<keyof ImageStyle>([ 'resizeMode', 'tintColor', 'overlayColor' ]); function mapObjectFit(objectFit: WebBlockStyles['objectFit']) { let resizeMode: ImageStyle['resizeMode']; switch (objectFit) { case 'contain': case 'cover': resizeMode = objectFit; break; case 'fill': resizeMode = 'stretch'; break; case 'scale-down': resizeMode = 'contain'; break; default: return null; } return { resizeMode }; } function extractImageStyleProps( style: any, objectFit?: WebBlockStyles['objectFit'] ) { const resizeModeFromFit = objectFit ? mapObjectFit(objectFit) : null; return { ...extractProps(style), ...resizeModeFromFit }; } export default extractImageStyleProps;