|
|
|
@@ -60,9 +60,14 @@ const sum = (arr: number[]): number => { |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
const defaultPeriod = { |
|
|
|
start: dayjs().subtract(7, 'day').format(commonDateFormat), |
|
|
|
end: dayjs().format(commonDateFormat), |
|
|
|
} |
|
|
|
|
|
|
|
export type PeriodParams = { |
|
|
|
name: string |
|
|
|
query: { |
|
|
|
query?: { |
|
|
|
start: string |
|
|
|
end: string |
|
|
|
} |
|
|
|
@@ -257,7 +262,7 @@ export const ConversationsChart: FC<IBizChartProps> = ({ id, period }) => { |
|
|
|
const noDataFlag = !response.data || response.data.length === 0 |
|
|
|
return <Chart |
|
|
|
basicInfo={{ title: t('appOverview.analysis.totalMessages.title'), explanation: t('appOverview.analysis.totalMessages.explanation'), timePeriod: period.name }} |
|
|
|
chartData={!noDataFlag ? response : { data: getDefaultChartData(period.query) }} |
|
|
|
chartData={!noDataFlag ? response : { data: getDefaultChartData(period.query ?? defaultPeriod) }} |
|
|
|
chartType='conversations' |
|
|
|
{...(noDataFlag && { yMax: 500 })} |
|
|
|
/> |
|
|
|
@@ -272,7 +277,7 @@ export const EndUsersChart: FC<IBizChartProps> = ({ id, period }) => { |
|
|
|
const noDataFlag = !response.data || response.data.length === 0 |
|
|
|
return <Chart |
|
|
|
basicInfo={{ title: t('appOverview.analysis.activeUsers.title'), explanation: t('appOverview.analysis.activeUsers.explanation'), timePeriod: period.name }} |
|
|
|
chartData={!noDataFlag ? response : { data: getDefaultChartData(period.query) }} |
|
|
|
chartData={!noDataFlag ? response : { data: getDefaultChartData(period.query ?? defaultPeriod) }} |
|
|
|
chartType='endUsers' |
|
|
|
{...(noDataFlag && { yMax: 500 })} |
|
|
|
/> |
|
|
|
@@ -286,7 +291,7 @@ export const AvgSessionInteractions: FC<IBizChartProps> = ({ id, period }) => { |
|
|
|
const noDataFlag = !response.data || response.data.length === 0 |
|
|
|
return <Chart |
|
|
|
basicInfo={{ title: t('appOverview.analysis.avgSessionInteractions.title'), explanation: t('appOverview.analysis.avgSessionInteractions.explanation'), timePeriod: period.name }} |
|
|
|
chartData={!noDataFlag ? response : { data: getDefaultChartData({ ...period.query, key: 'interactions' }) } as any} |
|
|
|
chartData={!noDataFlag ? response : { data: getDefaultChartData({ ...(period.query ?? defaultPeriod), key: 'interactions' }) } as any} |
|
|
|
chartType='conversations' |
|
|
|
valueKey='interactions' |
|
|
|
isAvg |
|
|
|
@@ -302,7 +307,7 @@ export const AvgResponseTime: FC<IBizChartProps> = ({ id, period }) => { |
|
|
|
const noDataFlag = !response.data || response.data.length === 0 |
|
|
|
return <Chart |
|
|
|
basicInfo={{ title: t('appOverview.analysis.avgResponseTime.title'), explanation: t('appOverview.analysis.avgResponseTime.explanation'), timePeriod: period.name }} |
|
|
|
chartData={!noDataFlag ? response : { data: getDefaultChartData({ ...period.query, key: 'latency' }) } as any} |
|
|
|
chartData={!noDataFlag ? response : { data: getDefaultChartData({ ...(period.query ?? defaultPeriod), key: 'latency' }) } as any} |
|
|
|
valueKey='latency' |
|
|
|
chartType='conversations' |
|
|
|
isAvg |
|
|
|
@@ -319,7 +324,7 @@ export const UserSatisfactionRate: FC<IBizChartProps> = ({ id, period }) => { |
|
|
|
const noDataFlag = !response.data || response.data.length === 0 |
|
|
|
return <Chart |
|
|
|
basicInfo={{ title: t('appOverview.analysis.userSatisfactionRate.title'), explanation: t('appOverview.analysis.userSatisfactionRate.explanation'), timePeriod: period.name }} |
|
|
|
chartData={!noDataFlag ? response : { data: getDefaultChartData({ ...period.query, key: 'rate' }) } as any} |
|
|
|
chartData={!noDataFlag ? response : { data: getDefaultChartData({ ...(period.query ?? defaultPeriod), key: 'rate' }) } as any} |
|
|
|
valueKey='rate' |
|
|
|
chartType='endUsers' |
|
|
|
isAvg |
|
|
|
@@ -336,7 +341,7 @@ export const CostChart: FC<IBizChartProps> = ({ id, period }) => { |
|
|
|
const noDataFlag = !response.data || response.data.length === 0 |
|
|
|
return <Chart |
|
|
|
basicInfo={{ title: t('appOverview.analysis.tokenUsage.title'), explanation: t('appOverview.analysis.tokenUsage.explanation'), timePeriod: period.name }} |
|
|
|
chartData={!noDataFlag ? response : { data: getDefaultChartData(period.query) }} |
|
|
|
chartData={!noDataFlag ? response : { data: getDefaultChartData(period.query ?? defaultPeriod) }} |
|
|
|
chartType='costs' |
|
|
|
{...(noDataFlag && { yMax: 100 })} |
|
|
|
/> |