Model Viewercomponent
The component renders a 3D model (with the
model-viewer
custom element) for the Storefront API's Model3d object. The model-viewer
custom element is lazily downloaded through a dynamically-injected <script type='module'>
tag when the component is rendered. ModelViewer is using version
1.21.1
of the library.
Anchor to propsProps
- Anchor to datadataPartialDeep<Model3d, {recurseIntoArrays: true}>required
An object with fields that correspond to the Storefront API's Model3D object.
- Anchor to onArStatusonArStatus(event: Event) => void
The callback to invoke when the 'ar-status' event is triggered. Refer to ar-status in the
documentation .- Anchor to onArTrackingonArTracking(event: Event) => void
The callback to invoke when the 'ar-tracking' event is triggered. Refer to ar-tracking in the
documentation .- Anchor to onCameraChangeonCameraChange(event: Event) => void
The callback to invoke when the 'camera-change' event is triggered. Refer to camera-change in the
documentation .- Anchor to onEnvironmentChangeonEnvironmentChange(event: Event) => void
The callback to invoke when the 'environment-change' event is triggered. Refer to environment-change in the
documentation .- Anchor to onErroronError(event: Event) => void
The callback to invoke when the 'error' event is triggered. Refer to error in the
documentation .- Anchor to onLoadonLoad(event: Event) => void
The callback to invoke when the
load
event is triggered. Refer to load in thedocumentation .- Anchor to onModelVisibilityonModelVisibility(event: Event) => void
The callback to invoke when the 'model-visibility' event is triggered. Refer to model-visibility in the
documentation .- Anchor to onPauseonPause(event: Event) => void
The callback to invoke when the 'pause' event is triggered. Refer to pause in the
documentation .- Anchor to onPlayonPlay(event: Event) => void
The callback to invoke when the 'play' event is triggered. Refer to play in the
documentation .- Anchor to onPreloadonPreload(event: Event) => void
The callback to invoke when the 'preload' event is triggered. Refer to preload in the
documentation .- Anchor to onProgressonProgress(event: Event) => void
The callback to invoke when the 'progress' event is triggered. Refer to progress in the
documentation .- (event: Event) => void
The callback to invoke when the 'quick-look-button-tapped' event is triggered. Refer to quick-look-button-tapped in the
documentation .- Anchor to onSceneGraphReadyonSceneGraphReady(event: Event) => void
The callback to invoke when the 'scene-graph-ready' event is triggered. Refer to scene-graph-ready in the
documentation .
Example code
Examples
Example code
Description
I am the default example
JavaScript
import {ModelViewer} from '@shopify/hydrogen'; export default function MyProductModel({products}) { const firstMediaElement = products.nodes[0].media.nodes[0]; if (firstMediaElement.__typename === 'Model3d') { return <ModelViewer data={firstMediaElement} />; } }
TypeScript
import {ModelViewer} from '@shopify/hydrogen'; import type {ProductConnection} from '@shopify/hydrogen/storefront-api-types'; export default function MyProductModel({ products, }: { products: ProductConnection; }) { const firstMediaElement = products.nodes[0].media.nodes[0]; if (firstMediaElement.__typename === 'Model3d') { return <ModelViewer data={firstMediaElement} />; } }