|
@@ -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 })}
|
|
|
/>
|