UNPKG

@vandrei977/react-native-render-html

Version:

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

32 lines (30 loc) 954 B
import { useMemo, useRef } from 'react'; import { useSharedProps } from '../context/SharedPropsProvider'; import { IncompleteImageDimensions, UseIMGElementStateProps } from './img-types'; export default function useIMGNormalizedSource({ source, specifiedDimensions }: Pick<UseIMGElementStateProps, 'source'> & { specifiedDimensions: IncompleteImageDimensions; }) { const cachedDimensions = useRef(specifiedDimensions); const { provideEmbeddedHeaders } = useSharedProps(); return useMemo(() => { if (source.uri && typeof provideEmbeddedHeaders === 'function') { const headers = provideEmbeddedHeaders(source.uri, 'img', { printWidth: cachedDimensions.current?.width || undefined, printHeight: cachedDimensions.current?.height || undefined }); if (headers) { return { headers, ...source }; } } return source; }, [provideEmbeddedHeaders, source]); }