diff --git a/src/components/bcf-topic-form/BcfTopicForm.vue b/src/components/bcf-topic-form/BcfTopicForm.vue index d134339..6b6bfb4 100644 --- a/src/components/bcf-topic-form/BcfTopicForm.vue +++ b/src/components/bcf-topic-form/BcfTopicForm.vue @@ -346,10 +346,10 @@ export default { const createViewpoints = () => { Promise.all( - ($viewer?.globalContext.getViewers() ?? []) - .filter(viewer => viewer.getLoadedModels().length > 0) - .map(viewer => - viewer.getViewpoint().then(viewpoint => viewpointsToCreate.value.push(viewpoint)) + ($viewer?.globalContext.localContexts ?? []) + .filter(ctx => ctx.viewer && ctx.loadedModels.length > 0) + .map(ctx => + ctx.getViewpoint().then(viewpoint => viewpointsToCreate.value.push(viewpoint)) ) ); }; @@ -449,8 +449,9 @@ export default { let newTopic; if (isCreation.value) { if ($viewer) { - data.models = $viewer.globalContext.getViewers() - .flatMap(v => v.getLoadedModels().map(m => m.id)); + data.models = $viewer.globalContext.localContexts + .filter(ctx => ctx.viewer) + .flatMap(ctx => ctx.loadedModelIds); } newTopic = await service.createTopic(props.project, data); } else { diff --git a/src/components/bcf-topic-overview/bcf-topic-comments/topic-comment/TopicComment.vue b/src/components/bcf-topic-overview/bcf-topic-comments/topic-comment/TopicComment.vue index f047ed0..ef79111 100644 --- a/src/components/bcf-topic-overview/bcf-topic-comments/topic-comment/TopicComment.vue +++ b/src/components/bcf-topic-overview/bcf-topic-comments/topic-comment/TopicComment.vue @@ -215,10 +215,10 @@ export default { } }; - const createViewpoint = async ({ viewer }) => { - unhighlightViewer(viewer); + const createViewpoint = async ({ context }) => { + unhighlightViewer(context); viewerSelectVisible.value = false; - viewpoint.value = await viewer.getViewpoint(); + viewpoint.value = await context.getViewpoint(); }; const canEditComment = comment => { diff --git a/src/utils/viewer.js b/src/utils/viewer.js index bc9f298..4e0a91c 100644 --- a/src/utils/viewer.js +++ b/src/utils/viewer.js @@ -1,16 +1,17 @@ export function getViewerOptions($viewer) { - return $viewer.globalContext.getViewers() - .map((v, i) => ({ key: `${i}-${v.plugin.name}`, index: i, name: v.plugin.name, viewer: v })); + return $viewer.globalContext.localContexts + .filter(ctx => ctx.viewer) + .map((ctx, i) => ({ key: ctx.id, index: i, name: ctx.viewer.$plugin.name, context: ctx })); } -export function highlightViewer(viewer) { - viewer.$viewer.localContext.el.style.boxSizing = "border-box"; - viewer.$viewer.localContext.el.style.border = "2px solid var(--color-primary)"; - viewer.$viewer.localContext.el.style.opacity = ".85"; +export function highlightViewer(context) { + context.el.style.boxSizing = "border-box"; + context.el.style.border = "2px solid var(--color-primary)"; + context.el.style.opacity = ".85"; } -export function unhighlightViewer(viewer) { - viewer.$viewer.localContext.el.style.boxSizing = ""; - viewer.$viewer.localContext.el.style.border = ""; - viewer.$viewer.localContext.el.style.opacity = ""; +export function unhighlightViewer(context) { + context.el.style.boxSizing = ""; + context.el.style.border = ""; + context.el.style.opacity = ""; }