diff --git a/front/components.d.ts b/front/components.d.ts
index fda6c94..fcab68f 100644
--- a/front/components.d.ts
+++ b/front/components.d.ts
@@ -29,5 +29,6 @@ declare module 'vue' {
RandomIcon: typeof import('./src/components/RandomIcon.vue')['default']
RouterLink: typeof import('vue-router')['RouterLink']
RouterView: typeof import('vue-router')['RouterView']
+ Sidebar: typeof import('./src/components/Promo/sidebar.vue')['default']
}
}
diff --git a/front/src/components/Promo/load_models.vue b/front/src/components/Promo/load_models.vue
index 341c3b9..506c33f 100644
--- a/front/src/components/Promo/load_models.vue
+++ b/front/src/components/Promo/load_models.vue
@@ -89,16 +89,21 @@ const clickEvent = (event: MouseEvent) => {
pointer.x = x
pointer.y = y
raycaster.value.setFromCamera(new Vector2(pointer.x, pointer.y), camera.value);
-
+
const intersects = raycaster.value.intersectObjects(clickable_objects.value);
const names = intersects.map(el => el.object.name ?? false).filter(Boolean)
if (names.length) {
- const clicks = clickable.value.filter(el=>names.includes(el.object_name))
+ const clicks = clickable.value.find(el => names.includes(el.object_name))
+ if (!clicks) return
+ const sidebar_data = {
+ title: clicks.name,
+ description: clicks.description
+ } as PromoSidebarData
+ if (clicks?.target) {
+ sidebar_data.target = clicks.target.toString()
+ }
sidebar.open()
- sidebar.setData({
- title: clicks[0].name,
- description: clicks[0].description
- })
+ sidebar.setData(sidebar_data)
}
console.timeEnd('raycaster')
}
diff --git a/front/src/components/Promo/main.vue b/front/src/components/Promo/main.vue
index e0f4763..0e271d4 100644
--- a/front/src/components/Promo/main.vue
+++ b/front/src/components/Promo/main.vue
@@ -6,12 +6,9 @@ import { Vector3 } from 'three';
import { TresCanvas } from '@tresjs/core';
import { CameraControls, useProgress, StatsGl } from '@tresjs/cientos'
-
import Env from './env.vue'
import LoadModels from './load_models.vue'
-import { usePromoSidebar } from '../../stores/promo_sidebar';
-
-const sidebar = usePromoSidebar()
+import Sidebar from './sidebar.vue'
const _v = new Vector3();
const onChange = (e: any) => {
@@ -67,17 +64,7 @@ const point_light = reactive({