@sendbird/uikit-react-native-foundation
Version:
A foundational UI kit for building chat-enabled React Native apps.
78 lines • 2.28 kB
JavaScript
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
import React from 'react';
import { Image } from 'react-native';
import FastImageInternal from './FastImageInternal';
function convertCache(cache) {
switch (cache) {
case 'force-cache':
case 'only-if-cached':
return 'cacheOnly';
default:
return 'immutable';
}
}
function convertSource(source) {
if (Array.isArray(source)) {
return convertSource(source[0]);
}
if (typeof source === 'number') {
return source;
}
return {
uri: source === null || source === void 0 ? void 0 : source.uri,
headers: source === null || source === void 0 ? void 0 : source.headers,
cache: convertCache(source === null || source === void 0 ? void 0 : source.cache) //'immutable' | 'web' | 'cacheOnly'
};
}
function convertDefaultSource(source) {
if (typeof source === 'number') {
return source;
}
return undefined;
}
function convertResizeMode(mode) {
switch (mode) {
case 'center':
return 'center';
case 'contain':
return 'contain';
case 'cover':
return 'cover';
case 'stretch':
return 'stretch';
default:
return undefined;
}
}
const Image_FastImage = ({
source,
defaultSource,
resizeMode,
onLoad,
onError,
style,
tintColor,
disableFastImage = false,
...props
}) => {
if (disableFastImage) {
return /*#__PURE__*/React.createElement(Image, _extends({}, props, {
source: source,
style: [style, {
tintColor
}],
onError: onError && (e => onError(e.nativeEvent)),
onLoad: onLoad && (e => onLoad(e.nativeEvent.source))
}));
}
return /*#__PURE__*/React.createElement(FastImageInternal, _extends({}, props, {
onLoad: onLoad && (e => onLoad(e.nativeEvent)),
onError: onError && (() => onError({})),
style: style,
source: convertSource(source),
defaultSource: convertDefaultSource(defaultSource),
resizeMode: convertResizeMode(resizeMode)
}));
};
export default Image_FastImage;
//# sourceMappingURL=Image.fastimage.js.map