react-native-gallery-preview
Version:
<div> <img align="right" height="720" src="example.gif"> </div>
58 lines (57 loc) • 2.38 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.GalleryImageItem = void 0;
var _react = _interopRequireWildcard(require("react"));
var _GestureItemComponent = require("../GestureItemComponent/GestureItemComponent");
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
const GalleryImageItem = exports.GalleryImageItem = /*#__PURE__*/(0, _react.memo)(({
item,
width,
height,
ImageComponent,
...props
}) => {
const [imageDimensions, setImageDimensions] = (0, _react.useState)({
width: width,
height: height
});
const contentContainerSize = (0, _react.useMemo)(() => {
if (height > width) {
return {
width: width,
height: imageDimensions.height * width / imageDimensions.width
};
}
return {
width: imageDimensions.width * height / imageDimensions.height,
height: height
};
}, [width, height, imageDimensions.height, imageDimensions.width]);
const contentCenter = (0, _react.useMemo)(() => ({
contentCenterX: contentContainerSize.width / 2,
contentCenterY: contentContainerSize.height / 2
}), [contentContainerSize]);
const onLoad = (0, _react.useCallback)((w, h) => {
setImageDimensions({
width: w,
height: h
});
}, []);
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_GestureItemComponent.GestureItemComponent, {
contentCenterX: contentCenter.contentCenterX,
contentCenterY: contentCenter.contentCenterY,
contentContainerSize: contentContainerSize,
width: width,
height: height,
...props,
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(ImageComponent, {
source: item,
onLoad: onLoad,
style: contentContainerSize
})
});
});
//# sourceMappingURL=GalleryImageItem.js.map