Skip to content

Commit 9323682

Browse files
committed
fix(web): update VR support check and improve immersive viewer loading
1 parent bcc9640 commit 9323682

File tree

1 file changed

+15
-9
lines changed

1 file changed

+15
-9
lines changed

web/src/lib/components/asset-viewer/image-panorama-viewer.svelte

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
<script lang="ts">
2-
import ImmersivePanoramaViewer from '$lib/components/asset-viewer/immersive-panorama-viewer.svelte';
32
import { authManager } from '$lib/managers/auth-manager.svelte';
43
import { getAssetOriginalUrl } from '$lib/utils';
54
import { isWebCompatibleImage } from '$lib/utils/asset-utils';
@@ -23,7 +22,7 @@
2322
// Check if WebXR is supported and specifically if immersive-vr is supported
2423
if ('xr' in navigator && typeof navigator?.xr?.isSessionSupported === 'function') {
2524
try {
26-
isVrSupported = await navigator.xr.isSessionSupported('inline');
25+
isVrSupported = await navigator.xr.isSessionSupported('immersive-vr');
2726
} catch (err) {
2827
console.error('Error checking VR support:', err);
2928
isVrSupported = false;
@@ -46,7 +45,10 @@
4645
</script>
4746

4847
<div transition:fade={{ duration: 150 }} class="flex h-full select-none place-content-center place-items-center">
49-
{#await Promise.all([loadAssetData(asset.id), import('./photo-sphere-viewer-adapter.svelte')])}
48+
{#await Promise.all([
49+
loadAssetData(asset.id),
50+
import('./photo-sphere-viewer-adapter.svelte')
51+
])}
5052
<LoadingSpinner />
5153
{:then [data, { default: PhotoSphereViewer }]}
5254
{#if !showVR}
@@ -62,12 +64,16 @@
6264
{/if}
6365
</div>
6466
{:else}
65-
<ImmersivePanoramaViewer
66-
imageUrl={isWebCompatibleImage(asset) ? getAssetOriginalUrl({ id: asset.id }) : data}
67-
onClose={() => {
68-
showVR = false;
69-
}}
70-
/>
67+
{#await import('./immersive-panorama-viewer.svelte')}
68+
<LoadingSpinner />
69+
{:then { default: ImmersivePanoramaViewer }}
70+
<ImmersivePanoramaViewer
71+
imageUrl={isWebCompatibleImage(asset) ? getAssetOriginalUrl({ id: asset.id }) : data}
72+
onClose={() => {
73+
showVR = false;
74+
}}
75+
/>
76+
{/await}
7177
{/if}
7278
{:catch}
7379
{$t('errors.failed_to_load_asset')}

0 commit comments

Comments
 (0)