File size: 1,270 Bytes
f850783
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import LineChart from '@/components/line-chart';
import { useTranslate } from '@/hooks/common-hooks';
import { IStats } from '@/interfaces/database/chat';
import { formatDate } from '@/utils/date';
import camelCase from 'lodash/camelCase';
import { useSelectChartStatsList } from '../hooks';

import styles from './index.less';

const StatsLineChart = ({ statsType }: { statsType: keyof IStats }) => {
  const { t } = useTranslate('chat');
  const chartList = useSelectChartStatsList();
  const list =
    chartList[statsType]?.map((x) => ({
      ...x,
      xAxis: formatDate(x.xAxis),
    })) ?? [];

  return (
    <div className={styles.chartItem}>
      <b className={styles.chartLabel}>{t(camelCase(statsType))}</b>
      <LineChart data={list}></LineChart>
    </div>
  );
};

const StatsChart = () => {
  return (
    <div className={styles.chartWrapper}>
      <StatsLineChart statsType={'pv'}></StatsLineChart>
      <StatsLineChart statsType={'round'}></StatsLineChart>
      <StatsLineChart statsType={'speed'}></StatsLineChart>
      <StatsLineChart statsType={'thumb_up'}></StatsLineChart>
      <StatsLineChart statsType={'tokens'}></StatsLineChart>
      <StatsLineChart statsType={'uv'}></StatsLineChart>
    </div>
  );
};

export default StatsChart;