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

Commit 50ea158

Browse files
committed
Merge branch 'feature/glb-support' into develop
2 parents 01fa350 + 0ce9ef5 commit 50ea158

File tree

4 files changed

+52
-17
lines changed

4 files changed

+52
-17
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: 42 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,60 @@
11
<template>
2-
<img
3-
v-if="!(imageUrl?.endsWith('mp4') || imageUrl?.endsWith('mov'))"
2+
<div
43
:style="{
54
width: size + 'px',
65
height: size + 'px',
76
}"
8-
:src="imageUrl"
9-
class="nft-item"
10-
/>
11-
<video
12-
v-else
13-
:style="{
14-
width: size + 'px',
15-
height: size + 'px',
16-
}"
17-
:src="imageUrl"
18-
class="nft-item"
19-
autoplay
20-
loop
21-
muted
22-
/>
7+
>
8+
<video
9+
v-if="imageUrl?.endsWith('mp4') || imageUrl?.endsWith('mov')"
10+
:src="imageUrl"
11+
class="nft-item"
12+
:style="{
13+
width: size + 'px',
14+
height: size + 'px',
15+
}"
16+
autoplay
17+
loop
18+
muted
19+
/>
20+
<model-viewer
21+
v-else-if="imageUrl?.endsWith('glb')"
22+
:src="imageUrl"
23+
class="nft-item"
24+
:style="{
25+
width: size + 'px',
26+
height: size + 'px',
27+
}"
28+
ar
29+
ar-modes="webxr scene-viewer quick-look"
30+
environment-image="neutral"
31+
auto-rotate
32+
camera-controls
33+
/>
34+
<img
35+
v-else
36+
:src="imageUrl"
37+
class="nft-item"
38+
:style="{
39+
width: size + 'px',
40+
height: size + 'px',
41+
}"
42+
/>
43+
</div>
2344
</template>
2445

2546
<script lang="ts">
2647
import { Vue, Options } from 'vue-class-component';
48+
import * as viewer from '@google/model-viewer';
2749
2850
@Options({
2951
props: {
3052
size: Number,
3153
imageUrl: String,
3254
},
55+
components: {
56+
viewer,
57+
},
3358
})
3459
export default class NFTItem extends Vue {
3560
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)