diff --git a/packages/shared-frontend-utils/src/formatUtil.test.ts b/packages/shared-frontend-utils/src/formatUtil.test.ts index cf64b26ec8..2c38d767d5 100644 --- a/packages/shared-frontend-utils/src/formatUtil.test.ts +++ b/packages/shared-frontend-utils/src/formatUtil.test.ts @@ -112,6 +112,7 @@ describe('formatUtil', () => { expect(getMediaTypeFromFilename('asset.gltf')).toBe('3D') expect(getMediaTypeFromFilename('binary.glb')).toBe('3D') expect(getMediaTypeFromFilename('apple.usdz')).toBe('3D') + expect(getMediaTypeFromFilename('scan.ply')).toBe('3D') }) }) diff --git a/packages/shared-frontend-utils/src/formatUtil.ts b/packages/shared-frontend-utils/src/formatUtil.ts index 99b6bc79f5..01e52cdd4a 100644 --- a/packages/shared-frontend-utils/src/formatUtil.ts +++ b/packages/shared-frontend-utils/src/formatUtil.ts @@ -591,7 +591,7 @@ const IMAGE_EXTENSIONS = [ ] as const const VIDEO_EXTENSIONS = ['mp4', 'm4v', 'webm', 'mov', 'avi', 'mkv'] as const const AUDIO_EXTENSIONS = ['mp3', 'wav', 'ogg', 'flac'] as const -const THREE_D_EXTENSIONS = ['obj', 'fbx', 'gltf', 'glb', 'usdz'] as const +const THREE_D_EXTENSIONS = ['obj', 'fbx', 'gltf', 'glb', 'usdz', 'ply'] as const const TEXT_EXTENSIONS = [ 'txt', 'md', diff --git a/src/components/sidebar/tabs/AssetsSidebarTab.vue b/src/components/sidebar/tabs/AssetsSidebarTab.vue index 20d4814c97..9770d0ffa1 100644 --- a/src/components/sidebar/tabs/AssetsSidebarTab.vue +++ b/src/components/sidebar/tabs/AssetsSidebarTab.vue @@ -246,6 +246,7 @@ import type { OutputAssetMetadata } from '@/platform/assets/schemas/assetMetadat import { getOutputAssetMetadata } from '@/platform/assets/schemas/assetMetadataSchema' import type { AssetItem } from '@/platform/assets/schemas/assetSchema' import { getAssetDisplayName } from '@/platform/assets/utils/assetMetadataUtils' +import { getAssetUrl } from '@/platform/assets/utils/assetUrlUtil' import type { MediaKind } from '@/platform/assets/schemas/mediaAssetSchema' import { resolveOutputAssetItems } from '@/platform/assets/utils/outputAssetUtil' import { isCloud } from '@/platform/distribution/types' @@ -582,7 +583,7 @@ const handleZoomClick = (asset: AssetItem) => { title: getAssetDisplayName(asset), component: Load3dViewerContent, props: { - modelUrl: asset.preview_url || '' + modelUrl: asset.preview_url || getAssetUrl(asset) }, dialogComponentProps: { style: 'width: 80vw; height: 80vh;',