| 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; | |