Skip to content

Commit f59f4ad

Browse files
authored
fix(ui): resolve reports page display issues in sample mode (#4041)
1 parent 79a5799 commit f59f4ad

File tree

4 files changed

+23
-59
lines changed

4 files changed

+23
-59
lines changed

Diff for: ee/tabby-ui/app/(dashboard)/reports/components/annual-activity.tsx

+10-53
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,9 @@
11
'use client'
22

33
import { useWindowSize } from '@uidotdev/usehooks'
4-
import moment from 'moment'
54
import ReactActivityCalendar from 'react-activity-calendar'
65

7-
import {
8-
ChatDailyStatsInPastYearQuery,
9-
DailyStatsInPastYearQuery
10-
} from '@/lib/gql/generates/graphql'
116
import { useCurrentTheme } from '@/lib/hooks/use-current-theme'
12-
import { ArrayElementType } from '@/lib/types'
137

148
function ActivityCalendar({
159
data
@@ -41,60 +35,23 @@ function ActivityCalendar({
4135
}
4236

4337
export function AnnualActivity({
44-
yearlyStats
38+
totalCount,
39+
dailyData
4540
}: {
46-
yearlyStats:
47-
| Array<
48-
| ArrayElementType<DailyStatsInPastYearQuery['dailyStatsInPastYear']>
49-
| ArrayElementType<
50-
ChatDailyStatsInPastYearQuery['chatDailyStatsInPastYear']
51-
>
52-
>
53-
| undefined
41+
totalCount: number
42+
dailyData: Array<{
43+
date: string
44+
count: number
45+
level: number
46+
}>
5447
}) {
55-
let lastYearActivities = 0
56-
const dailyViewMap: Record<string, number> =
57-
yearlyStats?.reduce((acc, cur) => {
58-
const date = moment.utc(cur.start).format('YYYY-MM-DD')
59-
if (cur.__typename === 'CompletionStats') {
60-
lastYearActivities += cur.views
61-
lastYearActivities += cur.selects
62-
return {
63-
...acc,
64-
[date]: (acc[date] ?? 0) + cur.views
65-
}
66-
} else if (cur.__typename === 'ChatCompletionStats') {
67-
lastYearActivities += cur.chats
68-
return {
69-
...acc,
70-
[date]: (acc[date] ?? 0) + cur.chats
71-
}
72-
} else {
73-
return acc
74-
}
75-
}, {} as Record<string, number>) || {}
76-
77-
const data = new Array(365)
78-
.fill('')
79-
.map((_, idx) => {
80-
const date = moment().subtract(idx, 'days').format('YYYY-MM-DD')
81-
const count = dailyViewMap[date] || 0
82-
const level = Math.min(4, Math.ceil(count / 5))
83-
return {
84-
date: date,
85-
count,
86-
level
87-
}
88-
})
89-
.reverse()
90-
9148
return (
9249
<div className="flex h-full flex-col rounded-lg border bg-primary-foreground/30 px-6 py-4">
9350
<h3 className="mb-5 text-sm font-medium tracking-tight">
94-
<b>{lastYearActivities}</b> activities in the last year
51+
<b>{totalCount}</b> activities in the last year
9552
</h3>
9653
<div className="flex flex-1 items-center justify-center">
97-
<ActivityCalendar data={data} />
54+
<ActivityCalendar data={dailyData} />
9855
</div>
9956
</div>
10057
)

Diff for: ee/tabby-ui/app/(dashboard)/reports/components/completion-daily-activity.tsx

+3-2
Original file line numberDiff line numberDiff line change
@@ -107,14 +107,15 @@ export function CompletionDailyActivity({
107107
} = useCompletionDailyStats({
108108
selectedMember,
109109
dateRange,
110-
sample
110+
sample,
111+
languages: selectedLanguage
111112
})
112113

113114
return (
114115
<LoadingWrapper
115116
loading={fetchingCompletionDailyStats}
116117
fallback={
117-
<div className="flex flex-col gap-5">
118+
<div className="mb-10 flex flex-col gap-5">
118119
<div className="flex justify-between gap-5">
119120
<Skeleton className="h-32 flex-1" />
120121
<Skeleton className="h-32 flex-1" />

Diff for: ee/tabby-ui/app/(dashboard)/reports/components/report.tsx

+8-3
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,13 @@ export function Report() {
3131
const [selectedMember, setSelectedMember] = useState(KEY_SELECT_ALL)
3232
const sample = isDemoMode || searchParams.get('sample') === 'true'
3333

34-
const { yearlyStats, fetching: fetchingYearlyStats } = useYearlyStats({
35-
selectedMember
34+
const {
35+
dailyData,
36+
fetching: fetchingYearlyStats,
37+
totalCount
38+
} = useYearlyStats({
39+
selectedMember,
40+
sample
3641
})
3742

3843
return (
@@ -81,7 +86,7 @@ export function Report() {
8186
<h1 className="mb-2 text-center text-xl font-semibold md:text-start">
8287
Activity
8388
</h1>
84-
<AnnualActivity yearlyStats={yearlyStats} />
89+
<AnnualActivity totalCount={totalCount} dailyData={dailyData} />
8590
</div>
8691
</LoadingWrapper>
8792

Diff for: ee/tabby-ui/lib/hooks/use-statistics.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,8 @@ export function useCompletionDailyStats({
171171
users:
172172
selectedMember === KEY_SELECT_ALL
173173
? undefined
174-
: compact([selectedMember])
174+
: compact([selectedMember]),
175+
languages
175176
}
176177
})
177178

0 commit comments

Comments
 (0)