From aef17058d1349a22f5fd022858779160807fc5e3 Mon Sep 17 00:00:00 2001 From: digua Date: Sun, 2 Aug 2026 21:26:36 +0800 Subject: [PATCH] fix(insights): unify loading transitions --- .../session/insights/SessionInsights.vue | 157 ++++++------- apps/web-wasm/src/pages/SessionDetailPage.vue | 42 +++- src/components/UI/InsightLoadingDots.vue | 61 +++++ src/components/UI/InsightViewTransition.vue | 221 ++++++++++++++++++ src/components/UI/LoadingState.vue | 10 +- src/components/UI/index.ts | 1 + .../UI/insight-view-loading.test.ts | 33 +++ src/components/UI/insight-view-loading.ts | 48 ++++ .../analysis/quotes/WordcloudTab.vue | 4 +- .../analysis/relationships/ClusterView.vue | 2 + .../relationships/InteractionView.vue | 2 + src/components/common/TimeSelect.vue | 31 ++- .../layout/session/SessionAnalysisHeader.vue | 6 +- .../useSessionAnalysisPageBase.test.ts | 164 ++++++++++++- src/composables/useSessionAnalysisPageBase.ts | 107 +++++++-- .../components/insights/GroupChatInsights.vue | 87 +++---- src/pages/group-chat/index.vue | 31 ++- .../insights/PrivateChatInsights.vue | 115 +++++---- src/pages/private-chat/index.vue | 35 ++- 19 files changed, 889 insertions(+), 268 deletions(-) create mode 100644 src/components/UI/InsightLoadingDots.vue create mode 100644 src/components/UI/InsightViewTransition.vue create mode 100644 src/components/UI/insight-view-loading.test.ts create mode 100644 src/components/UI/insight-view-loading.ts diff --git a/apps/web-wasm/src/components/session/insights/SessionInsights.vue b/apps/web-wasm/src/components/session/insights/SessionInsights.vue index 2ed986cf..627f401f 100644 --- a/apps/web-wasm/src/components/session/insights/SessionInsights.vue +++ b/apps/web-wasm/src/components/session/insights/SessionInsights.vue @@ -11,6 +11,7 @@ import { LanguagePreferenceTab, WordcloudTab } from '@/components/analysis/quote import type { TimeFilter } from '@openchatlab/shared-types' import type { AnalysisSession, MessageType } from '@/types/base' import type { DailyActivity, HourlyActivity, MemberActivity } from '@/types/analysis' +import { InsightViewTransition } from '@/components/UI' import GroupRelationshipInsights from './GroupRelationshipInsights.vue' import GroupOverview from './GroupOverview.vue' import PrivateOverview from './PrivateOverview.vue' @@ -80,89 +81,79 @@ const viewTimeFilter = computed(() => ({ ...props.timeFilter, memberId: selected
- - - - - - - - - - - + + +
- - diff --git a/apps/web-wasm/src/pages/SessionDetailPage.vue b/apps/web-wasm/src/pages/SessionDetailPage.vue index bf2c0a71..f54b1826 100644 --- a/apps/web-wasm/src/pages/SessionDetailPage.vue +++ b/apps/web-wasm/src/pages/SessionDetailPage.vue @@ -1,9 +1,10 @@