@@ -50,6 +50,7 @@ import context from 'dive-common/store/context';
5050import { MarkChangesPendingFilter , TrackWithContext } from ' vue-media-annotator/BaseFilterControls' ;
5151import { EditAnnotationTypes , VisibleAnnotationTypes } from ' vue-media-annotator/layers' ;
5252import TrackViewer from ' vue-media-annotator/components/track_3d_viewer/TrackViewer.vue' ;
53+ import { isStereo3dReady } from ' vue-media-annotator/components/track_3d_viewer/misc' ;
5354import TrackViewerSettingsStore from ' vue-media-annotator/components/track_3d_viewer/TrackViewerSettingsStore' ;
5455import TrackViewerSettings from ' vue-media-annotator/components/track_3d_viewer/TrackViewerSettings.vue' ;
5556import GroupSidebarVue from ' ./GroupSidebar.vue' ;
@@ -108,6 +109,7 @@ export default defineComponent({
108109
109110 const showTrack3dViewer = ref (false );
110111 const isStereoConfigMode = ref (false );
112+ const hasStereo3dAttributes = ref (false );
111113
112114 const baseMulticamDatasetId = ref (null as string | null );
113115 const datasetId = toRef (props , ' id' );
@@ -793,6 +795,9 @@ export default defineComponent({
793795 await nextTick ();
794796 handleResize ();
795797 });
798+ watch (attributes , (attrs ) => {
799+ hasStereo3dAttributes .value = isStereo3dReady (attrs );
800+ });
796801 onBeforeUnmount (() => {
797802 if (controlsRef .value ) observer .unobserve (controlsRef .value .$el );
798803 });
@@ -989,6 +994,7 @@ export default defineComponent({
989994 datasetId ,
990995 showTrack3dViewer ,
991996 isStereoConfigMode ,
997+ hasStereo3dAttributes ,
992998 };
993999 },
9941000});
@@ -1114,6 +1120,7 @@ export default defineComponent({
11141120 v-model =" showTrack3dViewer"
11151121 label =" Track 3D Viewer"
11161122 color =" primary"
1123+ :disabled =" !hasStereo3dAttributes"
11171124 hide-details
11181125 />
11191126 </template >
0 commit comments