Skip to content
This repository was archived by the owner on Feb 5, 2023. It is now read-only.

Commit 01dc20c

Browse files
committed
add: model viewer for glb support
1 parent be10439 commit 01dc20c

File tree

4 files changed

+34
-6
lines changed

4 files changed

+34
-6
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
},
2727
"homepage": "https://github.com/NaturalSelectionLabs/RSS3-Page#readme",
2828
"dependencies": {
29+
"@google/model-viewer": "1.8.0",
2930
"@sentry/tracing": "6.11.0",
3031
"@sentry/vue": "6.11.0",
3132
"@walletconnect/web3-provider": "1.6.5",

src/components/NFT/NFTItem.vue

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,53 @@
11
<template>
2-
<img
3-
v-if="!(imageUrl?.endsWith('mp4') || imageUrl?.endsWith('mov'))"
2+
<video
3+
v-if="imageUrl?.endsWith('mp4') || imageUrl?.endsWith('mov')"
44
:style="{
55
width: size + 'px',
66
height: size + 'px',
77
}"
88
:src="imageUrl"
99
class="nft-item"
10+
autoplay
11+
loop
12+
muted
1013
/>
11-
<video
14+
<model-viewer
15+
v-else-if="imageUrl?.endsWith('glb')"
16+
:style="{
17+
width: size + 'px',
18+
height: size + 'px',
19+
}"
20+
:src="imageUrl"
21+
class="nft-item"
22+
ar
23+
ar-modes="webxr scene-viewer quick-look"
24+
environment-image="neutral"
25+
auto-rotate
26+
camera-controls
27+
/>
28+
<img
1229
v-else
1330
:style="{
1431
width: size + 'px',
1532
height: size + 'px',
1633
}"
1734
:src="imageUrl"
1835
class="nft-item"
19-
autoplay
20-
loop
21-
muted
2236
/>
2337
</template>
2438

2539
<script lang="ts">
2640
import { Vue, Options } from 'vue-class-component';
41+
import * as viewer from '@google/model-viewer';
2742
2843
@Options({
2944
props: {
3045
size: Number,
3146
imageUrl: String,
3247
},
48+
components: {
49+
viewer,
50+
},
3351
})
3452
export default class NFTItem extends Vue {
3553
size!: Number;

src/types/model-viewer.d.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
declare module '@google/model-viewer' {
2+
const viewer: any;
3+
export default viewer;
4+
}

yarn.lock

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1410,6 +1410,11 @@
14101410
"@ethersproject/properties" "^5.4.0"
14111411
"@ethersproject/strings" "^5.4.0"
14121412

1413+
"@google/model-viewer@1.8.0":
1414+
version "1.8.0"
1415+
resolved "https://registry.yarnpkg.com/@google/model-viewer/-/model-viewer-1.8.0.tgz#398c0d9bbd3281933a3a4e6ed8f02da6789df768"
1416+
integrity sha512-qUwlu4q+sEFs2XOztZpaT5sGdv9G76jyLzEOdttcfAFb0/ZE0HnXU1KPN3Pq5gvdg+jW7fDUUHhsMxM1OBnpUQ==
1417+
14131418
"@metamask/safe-event-emitter@^2.0.0":
14141419
version "2.0.0"
14151420
resolved "https://registry.npm.taobao.org/@metamask/safe-event-emitter/download/@metamask/safe-event-emitter-2.0.0.tgz#af577b477c683fad17c619a78208cede06f9605c"

0 commit comments

Comments
 (0)