@cross-nft-marketplace/auction-house-nft-components
Version:
NFT Media Rendering Components
47 lines (46 loc) • 1.99 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Model = void 0;
const jsx_runtime_1 = require("react/jsx-runtime");
const auction_house_nft_hooks_1 = require("@cross-nft-marketplace/auction-house-nft-hooks");
const react_1 = require("react");
const HTML_1 = require("./HTML");
const RendererConfig_1 = require("./RendererConfig");
const Utils_1 = require("./Utils");
exports.Model = {
renderingPage: "https://gateway.pinata.cloud/ipfs/QmVc3UHHL6dhjWuY4cryY3yoEu1HoX8KcFafq3K4ELbZEJ/model-viewer.html",
supportedMimeTypes: [RendererConfig_1.MIME_TYPES_CONTENT.MODEL],
render: (props, theme) => {
const media = props.media;
const mediaURI = media === null || media === void 0 ? void 0 : media.url;
if (!media || !mediaURI) {
// todo: better error
return (0, jsx_runtime_1.jsx)(react_1.Fragment, {});
}
//todo remove me
const imageMedia = (0, Utils_1.getAppropriateMedia)(props.contextMedias, {
mimeTypes: [RendererConfig_1.MIME_TYPES_CONTENT.IMAGE],
mediaSize: auction_house_nft_hooks_1.MediaSize.THUMBNAIL // getMediaSizeForRendering(props.request.renderingContext)
}, {
cdnHosts: theme.cdnHosts,
maxPreviewSizeInBytes: theme.maxPreviewMediaSizeInBytes
});
const params = new URLSearchParams();
params.append("src", mediaURI);
if (imageMedia) {
params.append("poster", imageMedia.url);
}
const newMedia = {
...media,
url: `${exports.Model.renderingPage}#${params.toString()}`,
mimeType: RendererConfig_1.MIME_TYPES_CONTENT.HTML,
};
const newProps = {
media: newMedia,
...props, request: {
...props.request,
}
};
return (0, jsx_runtime_1.jsx)(HTML_1.HTML.render, { ...newProps });
},
};