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