import { Card, Link, Space, Grid, Divider, Typography, } from '@arco-design/web-react'; import { IconApps, IconUser, IconUserGroup } from '../../icon'; import React from 'react'; import { XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer, AreaChart, Area, } from '../../chart'; import { useUserStore } from '../../store/user'; import { createSelector } from '../../utils/createSelector'; import { useTranslation } from 'react-i18next'; const { GridItem } = Grid; export const Dashboard: React.FC = React.memo(() => { const { userIdentity } = useUserStore(createSelector('userIdentity')); const { t } = useTranslation(); return (
{t('tushan.dashboard.welcome', { name: userIdentity.fullName, })} } title={t('tushan.dashboard.user')} count={1000} /> } title={t('tushan.dashboard.group')} count={1000} /> } title={t('tushan.dashboard.item')} count={1000} /> {t('tushan.dashboard.tip.docs')} {t('tushan.dashboard.tip.github')} {t('tushan.dashboard.tip.design')}
); }); Dashboard.displayName = 'Dashboard'; const DashboardItem: React.FC< React.PropsWithChildren<{ title: string; href?: string; }> > = React.memo((props) => { const { t } = useTranslation(); return ( {t('tushan.dashboard.more')} ) } bordered={false} style={{ overflow: 'hidden' }} > {props.children} ); }); DashboardItem.displayName = 'DashboardItem'; const DataItem: React.FC<{ icon: React.ReactElement; title: string; count: number; }> = React.memo((props) => { return (
{props.icon}
{props.title}
{props.count}
); }); DataItem.displayName = 'DataItem'; const data = [ { name: 'Page A', uv: 4000, pv: 2400, amt: 2400, }, { name: 'Page B', uv: 3000, pv: 1398, amt: 2210, }, { name: 'Page C', uv: 2000, pv: 9800, amt: 2290, }, { name: 'Page D', uv: 2780, pv: 3908, amt: 2000, }, { name: 'Page E', uv: 1890, pv: 4800, amt: 2181, }, { name: 'Page F', uv: 2390, pv: 3800, amt: 2500, }, { name: 'Page G', uv: 3490, pv: 4300, amt: 2100, }, ]; const MockChart: React.FC = React.memo(() => { return ( ); }); MockChart.displayName = 'MockChart';