perf(analysis): lazy-load group galaxy view

Keep the Three.js renderer out of session detail route chunks until the relationship tab is opened.
This commit is contained in:
digua committed 2026-08-09 10:57:24 +08:00
1 parent f82a3a90b9
commit 214fcee571
2 files changed
+10 -4

No files matched your search

@@ -1,9 +1,8 @@
<script setup lang="ts">
import { computed, ref } from 'vue'
import { computed, defineAsyncComponent, ref } from 'vue'
import { useI18n } from 'vue-i18n'
import { SectionTabs } from '@/components/navigation'
import UserSelect from '@/components/common/UserSelect.vue'
import GroupRelationshipGalaxyView from '@/components/analysis/relationship/GroupRelationshipGalaxyView.vue'
import PrivateRelationshipView from '@/components/analysis/relationship/PrivateRelationshipView.vue'
import JourneyView from '@/components/analysis/journey/JourneyView.vue'
import TypeAnalysisView from '@/components/analysis/message/TypeAnalysisView.vue'
@@ -16,6 +15,10 @@ import { InsightViewTransition } from '@/components/UI'
import GroupOverview from './GroupOverview.vue'
import PrivateOverview from './PrivateOverview.vue'
const GroupRelationshipGalaxyView = defineAsyncComponent(
() => import('@/components/analysis/relationship/GroupRelationshipGalaxyView.vue')
)
const props = defineProps<{
sessionId: string
session: AnalysisSession
@@ -1,11 +1,10 @@
<script setup lang="ts">
import { computed, ref } from 'vue'
import { computed, defineAsyncComponent, ref } from 'vue'
import { useI18n } from 'vue-i18n'
import { SectionTabs } from '@/components/navigation'
import UserSelect from '@/components/common/UserSelect.vue'
import TypeAnalysisView from '@/components/analysis/message/TypeAnalysisView.vue'
import TimeAnalysisView from '@/components/analysis/message/TimeAnalysisView.vue'
import GroupRelationshipGalaxyView from '@/components/analysis/relationship/GroupRelationshipGalaxyView.vue'
import { WordcloudTab } from '@/components/analysis/quotes'
import type { TimeFilter } from '@openchatlab/shared-types'
import type { AnalysisSession, MessageType } from '@/types/base'
@@ -13,6 +12,10 @@ import type { DailyActivity, HourlyActivity, MemberActivity } from '@/types/anal
import GroupChatOverview from './GroupChatOverview.vue'
import { InsightViewTransition } from '@/components/UI'
const GroupRelationshipGalaxyView = defineAsyncComponent(
() => import('@/components/analysis/relationship/GroupRelationshipGalaxyView.vue')
)
const { t } = useI18n()
const props = defineProps<{